Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 3 June 2008.
00:00 Zaba joined 00:09 AndyA joined 01:25 japhb joined
dalek r28125 | pmichaud++ | trunk: 01:37
: [rakudo]:
: * Improved List.reduce (bacek++)
: * Patch courtesy Vasily Chekalkin <bacek at bacek.com>, RT#55368
diff: www.parrotvm.org/svn/parrot/revision?rev=28125
01:49 TiMBuS joined 02:13 ank joined
bacek_ summon pmichaud 02:13
spell failed...
purl failed... looks funny
particle what's up? 02:14
purl The Canadian Dollar
particle no shizzle, purl
purl particle: huh?
bacek_ msg pmichaud 'Is it good idea to reimplement List.(map, grep, reduce, first,...) as free function which accepts Sub and Iterator.
it will making of lazy lists more easy. 02:15
particle: almost Lunch time. 02:16
tetragon Hrm... decided to try running "make spectest", and a segfault fell out
particle tetragon: which test?
tetragon And it actually has SIGSEGV in the crash report, instead of the usual SIGBUS
particle: I think it came from t/spec/S12-class/basic.t 02:17
particle that's unexpected 02:18
tetragon The trace I have when I tried to reproduce it is different to the one that popped out during make
I'll paste my reproduction attempt
It had a double free
nopaste "tetragon" at 69.196.141.26 pasted "Fun with attempting to reproduce a spectest crash" (163 lines) at nopaste.snit.ch/13184 02:20
particle tetragon: you're running svn head, i assume? 02:21
tetragon Yes, current as of a couple hours ago
r28124 02:22
pmichaud bacek_: how exactly do you mean?
bacek_ sub 'sort' :method .return '!sort' 02:23
particle tetragon: definitely want a parrotbug filed on that
02:23 Patterner joined
tetragon is busy hooking gdb up to the crash 02:23
bacek_ sub 'sort' method .param pmc e .return '!sort'(e, self.'iterator'())
tetragon And it's now sitting in malloc_error_break
bacek_ s/sort/grep/
pmichaud why would we need a separate function for that?
bacek_ say (1..5).grep { $_ % 2) 02:24
particle tetragon: if you run ../../parrot perl6.pbc t/spec/... do you get that segfault?
...or is perl6 there a link?
naw, can't be link or alias
pmichaud i.e., why can't 'sort' return the generator directly?
that's more what I would expect.
er, grep.
(since sort isn't really lazy) 02:25
bacek_ > say (1..5).grep({ $_ % 2})
nopaste "tetragon" at 69.196.141.26 pasted "Yay, gdb at the breakpoint suggested by Apple libc" (49 lines) at nopaste.snit.ch/13185
bacek_ Method 'grep' not found for invocant of class 'Range'
tetragon particle: No crash
particle tetragon: after Parrot_exit! i'm the only one who's seen that before
particle hugs tetragon 02:26
finally, that bug has been reproduced!
...and not on win32+msvc
bacek_ pmichaud: i agreed that 'grep' should return generator.
tetragon This time on OS X 10.5/ppc
pmichaud bacek_: I'll have to think about it a bit.
bacek_: it's a reasonable approach, but I'm not quite sure that it's "right" 02:27
tetragon particle: So new ticket, or is there an existing one to append to?
particle isn't List the lazy one?
tetragon: new ticket please
tetragon now wonders which test it was that actually crashed during spectest 02:28
bacek_ pmichaud: software isn't cut from stone :) We can change it later
actually '!grep' will return generator. So every other classes can get benefit from calling it 02:29
dalek r28126 | coke++ | trunk:
: From RT#55358
: > The static function get_op is declared but not defined in several
: > files, because the declaration is unconditionally generated in
: > Ops2c/Utils.pm
: NotFound++, this silences a few warnings when building with --cage.
diff: www.parrotvm.org/svn/parrot/revision?rev=28126
tetragon particle: You want anything from the gdb session I have open? 02:39
particle tetragon: sorry, i'm too distracted right now, preparing for soccer
pmichaud List is lazy, yes, but so is Range 02:40
particle yes, range is lazy too
Whiteknight List and Range need to get off their asses and find jobs
particle you're one to talk, Whiteknight
pmichaud :-P
Whiteknight ...:( 02:41
particle :)
pmichaud: Range will for sure have a generator
Whiteknight got hit where it hurts. He'll shut up now
particle Range needs a generator that works from either end 02:44
02:46 Psyche^ joined 02:48 purl joined
dalek r28127 | Whiteknight++ | gsoc_pdd09: 02:57
: [gsoc_pdd09] some work on flags, state, resume.
diff: www.parrotvm.org/svn/parrot/revision?rev=28127
tetragon The crash I was trying to find was in t/spec/S12-class/inheritance-class-methods.t 02:58
bacek_ particle: +1 for Range geneartor. 03:00
03:11 ilbot2 joined
moderator Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today
AndyA joined 03:12 wolverian joined 03:14 leo joined 03:16 integral joined 03:21 ruoso joined 03:23 cizra joined 03:29 vany joined
pmichaud_ actually, a range really *is* a generator of sorts 03:40
03:53 DietCoke joined
DietCoke if I want to test something in the jit core on feather, is TEST_PROG_ARGS=-j prove t/path/to/file.t sufficient? 03:53
(do I have to specifically config with --jitcapable? (doing that now just in case.)) 03:54
bacek_ pmichaud_: +1. 04:03
purl 1
04:14 Zaba_ joined
cotto_home If anyone ever talks about PHP's design, they're wrong. 04:15
There isn't one.
Patterner "Repeating 5 year old mistakes" 04:19
cotto_home there wasn't an excuse for this mess ever, much less 5 years ago 04:20
of course, it'll totally be worth it once I can load a CPAN module from PHP 04:21
php? 04:22
Auzon purl, php?
purl php is really badly designed or swahili for "child molestor" or or Philippine pesos or the best or PHP: Hardly Programming or brought to you by the teletubbies or proof there is no god or xrl.us/t6wx or more modular than perl or the little transgender brother of perl or a WOMBAT or tnx.nl/php or easy or or was better when it was a templating system or blamed on Rasmus Lerdorf
Patterner A bit biased one might think. 04:24
cotto_home purl, php is also taking the worse-is-better approach to dazzling new depths
purl i'm sorry, but that's too long, cotto_home
cotto_home stupid bot 04:25
purl Up yours, too, bruddah!
Auzon dumb bot.
purl Go away or I'll replace you with a small and useless factoid!
Auzon enjoys poking purl 04:26
Whiteknight haha, the "swahili for 'child molestor'" one had me actually laughing out loud
cotto_home do what you know how to, I guess
(in response to the bot)
Auzon :) 04:27
cotto_home purl, php is also taking worse-is-better to dazzling new depths
purl that is too long, cotto_home
cotto_home grrr
purl, php is also taking worse-is-better to new depths
purl that is too long, cotto_home
cotto_home purl, nvb? 04:29
purl no idea, cotto_home
cotto_home purl, nvb is not very bright
purl OK, cotto_home.
cotto_home purl, purl is nvb
purl ...but purl is a buggy piece of shit or a flooterbuck or a douchebag or an autonomic handjob system, well beyond the need for human intervention or a retard or a trannybot or a fuckslut in GumbyBRAIN's mind or going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or a smartass or the sixth beatle. or github.com\\/dagbrown\\/flooterbuck\\/...
cotto_home purl, purl is also nvb
purl okay, cotto_home.
cotto_home purl, purl?
purl rumour has it i am a buggy piece of shit or a flooterbuck or a douchebag or an autonomic handjob system, well beyond the need for human intervention or a retard or a trannybot or a fuckslut in GumbyBRAIN's mind or going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or a smartass or the sixth beatle. or github.com\\\\\\ or nvb
cotto_home If I can't make it do what I want, I can at least make it insult itself. 04:30
04:33 Ademan_ joined
Auzon purl, auzon? 04:34
purl you are, like, primarily working on rakudo test suite, yes
Auzon It must've learned that on its own. 04:35
cotto_home I am doing stuff 04:36
purl, cotto_home?
purl somebody said cotto_home was doing stuff
Auzon purl, karma? 04:37
purl karma is just as useful as the Perlmonks XP :-) or at ircxory.jrock.us/
04:38 tetragon joined
Auzon purl, forget me 04:40
purl Auzon: I forgot me
Auzon purl, I am working on the Perl 6 Test Suite that lives in the Pugs repo
purl ...but auzon is primarily working on rakudo test suite, yes?...
Auzon no purl, I am working on the Perl 6 Test Suite that lives in the Pugs repo
purl okay, Auzon.
Auzon purl, auzon?
purl you are working on the Perl 6 Test Suite that lives in the Pugs repo
tetragon purl, Auzon? 04:41
purl i think Auzon is working on the Perl 6 Test Suite that lives in the Pugs repo
Auzon purl, I am also watches a task file at pugs/t/TASKS
purl okay, Auzon.
Auzon purl, auzon?
purl you are working on the Perl 6 Test Suite that lives in the Pugs repo or watches a task file at pugs/t/TASKS
japhb cognominal_, vany: New OpenGL portability patch for you two up on RT #55228 05:01
y'all are seriously making me work for it, aren't ya? 05:02
tetragon japhb: Just so you know, normal OS X boxes don't have /usr/include/GL 05:08
japhb tetragon: yes, I know. er ... and? 05:09
tetragon But they can have a number of different sets in /Developer/SDKs (which are normally only used if you're targetting a specific release)
japhb yep, noticed that from cognominal's hell
tetragon japhb: I looked at the ticket and you mentioned that you weren't sent /usr/include/GL
japhb tetragon: Ah, gotcha, now I see where you're going
tetragon My Macintel has the headers for 10.3.9
(And the 10.4 that is actually in use) 05:10
japhb Apparently, cognominal's box *did* have a /usr/include/GL, which included headers for non-core GL stuff, like GLEW. And GLEW was what was killing his configure.
tetragon You can't count on any mac having headers in /opt/local. The ones that do obtained them via (Darwin|Mac)ports 05:11
What I saw in the ticket was /opt/local/include, so getting it through darwinports
japhb I'm not even searching /opt/local/ ... should I? Is that "polite" on Mac OS X? Right now, I'm only doing /usr/include/GL/, /usr/local/include/GL/, and the Mac OS X Frameworks directories 05:12
Oh, and the Win32 $ENV{INCLUDE} path
tetragon I normally don't deal with anything there as I work from source (found fink and darwinports too annoying) 05:13
japhb wonders what crazy moon directories Solaris will want to use ....
tetragon: nodnod
DietCoke (searching) ... why not just search those paths that have already been identified as potential search paths? 05:22
you shouldn't be duplicating that logic in your little slice of config. 05:23
japhb DietCoke: explain, please. kid51 told me back in the early days that Configure currently has no way to track locations of where system headers can be found. 05:24
[OT] Oh ZOT! No wonder this $day_job sanity checking code is always returning false ... I forgot to add an "is sane" case. Sheesh. Been debugging that for half an hour ... 05:25
05:30 cotto-work joined
DietCoke japhb: perhaps it should? 05:43
though if it's currently being stored anywhere, no need to refactor it to make your stuff work. 05:44
not being.
(but I know, for example, darwin is already probing for fink/darwinports) 05:45
japhb DietCoke: yes, I believe there are some probes for non-standard locations (as with, as you say, fink/darwinports) ... but no probing or storage of "standard" locations. 05:51
In general, I think the config system needs some refactoring, but it's a task I'm putting off for the moment .... 05:52
For one thing, I need some more experience with the various pain points before I'm qualified to do a refactoring that doesn't just trade one set of problems for another. 05:53
(Though I admit that the 'make clean' versus 'make realclean' issue is really starting to bug me.) 05:54
DietCoke well, if you're dabbling in config, that's unfortunately to be expected at the moment.
though it seems a reconfig should be fine in most cases.
japhb Oh, I always do 'make realclean' anyway (old habit) ... it's the problem reports from other people who just did a 'make clean' after I committed an OpenGL change and something didn't work. It's a bug in the config/build process design, not a bug in my code per se, but I get the bug anyway. 05:57
DietCoke ah, that. I addressed some of that in my response to you a few days ago.
japhb I mean, if even someone who has been at it as long as you sometimes trips over that, there's a problem.
DietCoke oh, definitely.
japhb DietCoke: yep, that's what I was referring to. 05:58
I'm leaving your ticket open at the moment while I ruminate on what I want to do about it. (How much do I want to bite off) 05:59
DietCoke most of my rant belongs in a new ticket(s). =-)
japhb true
If you feel like opening a new ticket with the rant, and resolving the old one, that's fine by me. Just let me know what the new RT # is (or add me as a watcher or whatever the RT equivalent is) 06:00
Because even if someone else does the work, it's still going to have a major effect on the OpenGL stuff. 06:01
06:04 bacek joined 06:25 Psyche^ joined 06:31 uniejo joined 06:43 Zaba joined 07:13 iblechbot joined 07:20 Zaba joined
bacek_ > my $a = (1..5); my @b = $a; say 'One '~@b; @b = $a; say 'Two '~@b; 07:20
One 1 2 3 4 5
Two
Range is broken badly. 07:21
bacek_ going to implement lazy lists during long weekend...
I just need little bit of luck to find free time.
Zaba bacek_, eh.. what should my $a = (1..5); assign to $a? 07:23
I can't think perl 6 yet 07:24
:/
moritz Zaba: a capture that holds the range, or a Range object or something along these lines
Zaba hmm..
what about my @b = $a, then?
moritz it evaluates $a in list context 07:25
pugs assigns a List or Range to the first item of @b 07:26
Zaba and Range knows how to get converted to an array, right?
moritz I hope so ;-)
well, yes 07:27
Zaba it's supposed to, at least
Zaba svn ups his parrot trunk
my workstation's been somehow slow last days
and my connection very unstable 07:28
07:39 UltraDM joined 07:56 Zaba_ joined
jonathan_ A Range is an iterator, and it's .from (or .to if you iterate from the other end) change as you iterate it. 08:02
dalek allison@perl.org | A foundation for Parrot: 08:03
link: www.perlfoundation.org/parrot/index...for_parrot
shorten dalek's url is at xrl.us/bkxq5
jonathan_ Thus in the above example, it's getting iterated to produce values when it's evaluated in list context the first time. But it should perhaps clone itself so you can do that many times...I'm not completely sure.
dalek allison@perl.org | A foundation for Parrot: 08:05
link: www.perlfoundation.org/parrot/index...for_parrot
shorten dalek's url is at xrl.us/bkxq5
bacek_ jonathan: I have patch for Range 08:08
it clones itself in get_iter and use this clone in list()
bacek_ sent it to RT few minutes ago. 08:09
dalek allison@perl.org | Articles of Incorporation: 08:11
link: www.perlfoundation.org/parrot/index...orporation
shorten dalek's url is at xrl.us/bkyfj
bacek_ jonathan: 55400
jonathan bacek_: I think it should clone itself in list instead
In get_iter it should return itself, because it is an iterator 08:12
bacek_ but shift_pmc destructive.
or its supposed to be destructive?
dalek allison@perl.org | Bylaws: 08:13
link: www.perlfoundation.org/parrot/index.cgi?bylaws
jonathan Yes, it is.
See S03, Range Semantics.
Explicitly says these operations are destructive. 08:14
I'm not completely sure the semantics you saw in your program above are out of line with S03, if a bit surprising.
But if they are wrong, the place to clone the iterator is inside Range's 'list' method. 08:15
bacek_ jonathan: already remade my patch
actually implement clone :vtable
jonathan Aha, good. 08:17
nopaste "bacek" at 211.29.157.151 pasted "Fixed Range with clone using" (40 lines) at nopaste.snit.ch/13193
jonathan I'm tied up with $other_job today, please send patch to list. Then pm can review it too and give his thoughts on how this should work.
dalek allison@perl.org | Articles of Incorporation:
link: www.perlfoundation.org/parrot/index...orporation
shorten dalek's url is at xrl.us/bkyfj
bacek_ jonathan: ok 08:18
dalek allison@perl.org | A foundation for Parrot: 08:19
link: www.perlfoundation.org/parrot/index...for_parrot
shorten dalek's url is at xrl.us/bkxq5
dalek allison@perl.org | A foundation for Parrot: 08:21
link: www.perlfoundation.org/parrot/index...for_parrot
shorten dalek's url is at xrl.us/bkxq5
08:22 Ademan joined
spinclad (from backlog) re whether abs always preserves type: abs(Cpx) => Num # a counterexample 08:50
moritz spinclad: that's right, but the tests don't do such foolish things ;) 08:51
rakudo: say 1 ~~ Num 08:52
EWRONGCHANNEL 08:53
09:38 TonyC joined 09:42 masak joined 09:47 ruoso joined
cognominal_ japbh : it compiles ant the triangle demo runs fine. kudos. 10:07
moritz how do I build and run the demo? 10:11
cognominal_ parrot ./examples/opengl/triangle.pir 10:13
moritz cool 10:16
bacek wanders why 'return' not implemented yet... 10:45
masak bacek: yeah, I see what you mean. apparently it's not trivial. 10:46
bacek masak, why?
masak I don't really know
moritz bacek: because it's not yet in PAST
it's implemented through control exceptions
and that was only recently refactored in parrot 10:47
masak how recently?
so now it's possible?
moritz now it's possible to do it in PAST
bacek wow
masak moritz: is there a PDD explaining all this?
moritz masak: presumably, yes... looking 10:48
masak (or a document of some sort)
moritz docs/pdds/pdd23_exceptions.pod 10:49
masak gracias
moritz svn.perl.org/parrot/trunk/docs/pdd...ptions.pod
shorten moritz's url is at xrl.us/bmmku
moritz purl, moritz's url? 10:50
purl bugger all, i dunno, moritz
moritz ok, not that stupid ;)
masak that's a humorous interchange :)
moritz I try to hack and IRC -Ofun ;) 10:51
masak so -- see if I get this correctly -- a return is a kind of exception?
moritz yes
a "control exception"
masak I think we just overused the term 'exception' in its original sense
to me returns are very unexceptional 10:52
but nvm
moritz "exception" = "dynamically scoped stack unwinding"
masak yeah, sure 10:53
moritz or s/stack/continuation/
masak my complaint was more along the lines that 'exception' is taking on a semantic life of its own within CS
but it probably did long ago anyway
moritz so did words like "regular" 10:54
masak and "function" :)
getting back to return=exception, what is it that catches a return exception? 10:59
an implicit try block around the method call?
moritz I think an implict try block around the function body 11:00
so the try is on the callee side, not on the caller side
11:01 Whiteknight joined
masak ah, so the thrown exception makes the control flow end up at the bottom of the callee? 11:01
makes sense
and it's this mechanism that needs to be added?
and it's essentially a Simple Matter Of Programming? 11:02
moritz think so, yes 11:04
if it's done in PAST, it should be trivial to add in any HLL that uses PAST
but I don't know how "Simple" that SMOP is ;)
masak 'HLL'? 11:05
moritz high level language
masak ah
moritz parrot-speak for "language implemented on top of parrot"
in other words "send PATCH" ;-)
masak so all HLLs compile down to PAST?
moritz most 11:06
masak is this what rakudo's actions.pm generates? 11:07
moritz aye
masak nice -- another stepping-stone towards enlightenment
thank you
moritz yw
masak so once actions.pm has done its work, where does the PAST go? 11:08
moritz one of the compiler/*/ thingies I guess
compilers/pct/ that is 11:09
jonathan compilers/pct/src/past/compiler.pir, I believe
Which turns it into POST
masak PAST->POST 11:10
purl PAST->POST is (designed to be) hll independent
masak thx, purl
purl please don't say "thx", if you're genuinely grateful it's worth the effort to type three extra characters and say "thanks". this is IRC, after all, not SMS or twitter
masak :) 11:11
ic
moritz purl, PAST->POST is also compilers/pct/src/past/compiler.pir
purl okay, moritz.
masak would it be feasible to intercept the PAST before it goes off to compilers/pct/src/past/compiler.pir, and manually add in nodes that simulate a return? 11:12
just to get a feel for how it would all work
moritz ../../parrot perl6.pbc --target=PAST $source_file
don't know if the output format is easily usable for re-evaluation, though 11:13
jonathan Well, you can also insert a stage into the pipeline
There's just a string inside I think perl6.pir
We already added the check stage to make -c work.
In the ML compiler I'm planning to work on, I expect I'll add a typecheck stage. 11:14
masak I'll look into how make -c works, then
s/make -c/-c/
jonathan And I'll make cheese sarnies for lunch. 11:15
masak :)
11:21 Zaba joined
cognominal_ sarnies? 11:25
masak cgi.peak.org/~jeremy/retort.cgi?British=sarnie 11:26
right when you think you know the English language fairly well, you meet an Englishman... 11:27
moritz ... or you go to scottland and think "wtf? this is *english*?" 11:29
masak loves Scottish 11:30
moritz of course they don't speak English there, but a somewhat rude approximation. Tooke me some time to figure out
masak I listen in to BBC Scotland sometimes
cognominal_ masak, I spent 3 years in the silicon valley, so I am more used to american english than regular english. I have trouble with many English accents. But jonathan, I understand pretty well when he speaks. 11:37
and he is giving great talks too at conferences 11:38
masak definitely
I visited .nz a few years ago, and had to learn new words for ordinary concepts, like "boot" and "beanie" 11:39
cognominal_ and he appreciates french cooking so he has become a regular at french perl workshops. 11:40
masak cool
11:48 iblechbot joined
bacek ho! 11:55
I've implemented 'return' based on exceptions!
moritz bacek: send patch! 11:58
purl Unpack Rachel and get out the puncture repair kit! I'm alive!
moritz (or mopaste)
literal send patch! 11:59
purl moritz: send patch =is= <reply>Unpack Rachel and get out the puncture repair kit! I'm alive!
masak bacek++ 12:00
bacek it requires a bit of polish
masak no matter. show us, now! :) 12:01
moritz do we have polish hackers here? ;-)
nopaste "bacek" at 202.7.166.182 pasted "Ugly hack for return 'statement'" (103 lines) at nopaste.snit.ch/13194 12:04
bacek It's ugly. Really ugly :) 12:05
12:06 barney joined
moritz yes 12:06
bacek moritz, but it works :) 12:08
moritz why does it need an extra namespace?
bacek for 'isa'. I don't want to catch wrong exception
moritz ok, makes sense 12:09
so the namespace isn't visible in p6 land?
masak patch -p1 < the-return-of-bacek
bacek moritz, not sure. Probably visible. 12:11
moritz aye, just tested it 12:12
it builds ;)
bacek moritz, WOW :)
moritz tests so far were all fine 12:13
masak hm, I got "Could not find non-existent sub return"
moritz > sub foo { 2; return 3; 5; }; say foo()
3
masak maybe I ran make in the wrong way...
moritz masak: did you add the Return.pir file? 12:14
masak let me check
moritz if you just did a patch -p1 < patch you didn't
t/spec/S12-role/composition................Null PMC access in type()
masak ah
moritz bacek: your patch breaks a few tests in 'make fulltest', but it's a nice start 12:15
> sub foo { 2;{ return 3;}; 5; }; say foo()
[oops; continuation 0xb64243cc of type 22 is trying to jump from runloop 985 to runloop 52]
masak moritz: don't do that then! :)
pmichaud_ the except handler belongs inside the called sub
not in the caller 12:16
also, not all statement_blocks are subs.
moritz so actually the sub|method|submethod|...| action should install the exception handler, right? 12:17
pmichaud_ it _really_ belongs in past, not in actions.pm
moritz I know ;)
pmichaud_ beyond that, we want generic exception handlers for all blocks -- e.g., for CATCH, ENTER, LEAVE, START, etc. 12:19
masak I'd take an incomplete implementation of return over these any day 12:20
this early on, that is
pmichaud_ yes, bacek's patch is quite clever.
bacek pmichaud_, i forgot pop_eh..
pmichaud_ maybe I can do control exceptions today. 12:21
masak yay! 12:22
bacek pmichaud++
pmichaud_ at least 'return' 12:23
masak pmichaud_++
dalek r28128 | fperrad++ | trunk:
: [Lua]
: - changes format of rules, now Perl (previously .ini)
diff: www.parrotvm.org/svn/parrot/revision?rev=28128
moritz pmichaud_: 'leave' isn't used taht often in the test suite
bacek pmichaud_, there is also fixed Range in #55400 waiting for review. 12:24
moritz except in builtins/control_flow/leave.t
pmichaud_ moritz: how about 'next' and 'last' ? 12:25
moritz pmichaud_: not all that often 12:26
pmichaud_ okay.
moritz mostly as "last element" or "next element" in test descriptions ;) 12:27
bacek pmichaud, welcome back :) 12:31
afk 12:33
12:34 cjfields joined
pmichaud oops, can't do 'return' this morning -- have to do $otherjob first :-( 12:45
okay, this afternoon then.
masak still very good news 12:47
pmichaud well, only if I manage to do it :-)
masak course you will :) 12:56
13:02 DietCoke joined 13:03 gryphon joined
dalek r28129 | pmichaud++ | trunk: 13:05
: [rakudo]:
: * Handling cloning of ranges (RT#55400, bacek++)
: * Patch courtesy Vasily Chekalkin <bacek at bacek.com>
: * Minor modifications by Pm
diff: www.parrotvm.org/svn/parrot/revision?rev=28129
jonathan pmichaud: Should the iterator method really do $P0 = clone self? 13:10
Since a Range is an iterator anyway. 13:11
pmichaud I think that 'shift' should modify the range, but shifting on the thing returned by 'get_iter' should not. 13:14
in particular:
my $a = 1..5; for =$a { say $_; }; say $a; 13:15
I don't know that iterating over a range should deplete the range.
jonathan I'm not 100% sure on this either. 13:17
However, a range is an iterator itself, and S03 says that when as it is iterated, the to and from change.
s/when// 13:18
Well, to or from if you iterate at just one end. :-)
13:19 Whiteknight joined
pmichaud well, I'm sure that shifting or popping a range modifies it. Despite what S03 says about prefix:<=>, I'm not so sure. 13:23
13:23 Zero_Yao joined
pmichaud let's see what pugs has to say :-) 13:24
13:24 <pmichaud> pugs: my $a = 1..5; for =$a { say $_; }; say $a; 13:25
13:25 <exp_evalbot> OUTPUT[1␤2␤3␤4␤5␤1 2 3 4 5␤]
dalek r28130 | coke++ | trunk:
: [DOCS] mention the other RT queue
diff: www.parrotvm.org/svn/parrot/revision?rev=28130
DietCoke does parrot currently support multiple iterators via get_iter? 13:27
pmichaud you mean for the base types? I don't know.
seems like it should.
DietCoke tcl's syntax gives you an ID for the iterator... [ set a array startsearch arrayName] [array nextelement arrayName $a] 13:28
gonna have to store a list of iterator ids on my hash-like object. 13:29
(er, tcl spells hash, 'array')
jonathan pmichaud: Hmm. Pugs seems to agree with you. :-) 13:31
pmichaud yes. but we also have:
jonathan But I think maybe best is posting to p6l for clarification.
pmichaud 13:28 <pmichaud> pugs: my $a = 1..5; my $b = =$a; say $b; $b = =$a; say $b; say $a;
13:28 <exp_evalbot> OUTPUT[1␤2␤3 4 5␤]
jonathan Curious. 13:32
purl hands jonathan a dead cat
pmichaud I'd probably post the question to p6c.
jonathan ok
will tonight if you don't beat me to it.
pmichaud I tend to use p6l for questions about Perl 6 design, and p6c for questions about clarification of the spec 13:33
jonathan Right now I'm bogged down in some...wait for it...CSS refactoring. :-(
pmichaud you'll probably beat me to it, at any rate.
DietCoke pmichaud: since you own PGE, can you comment on rt.perl.org/rt3/Ticket/Display.html?id=55210 ? 13:39
pmichaud I'll take the ticket for now. 13:40
I don't have a good comment at the moment. 13:41
it's a good idea, but instead of adding the opcode and then trying to figure out how PGE can use it, I'd rather figure out what PGE needs and then write an opcode to support it.
but I've been thinking along these lines with respect to longest token matching, yes. 13:42
13:44 Andy joined
DietCoke ah, that's a more positive rxn than I anticipated. so good. =-) 13:47
13:49 jhorwitz joined
pmichaud I've actually had a little time to think about it. :-) 14:02
okay, commented. 14:05
DietCoke++ # closing/handling old tickets. 14:06
hrmmmmmm. 14:08
> say (1..5).WHAT;
[oops; continuation 0xb751f038 of type 22 is trying to jump from runloop 3226 to runloop 3066]
Null PMC access in clone()
> say Range.WHAT;
weird.
[oops; continuation 0xb7516fec of type 22 is trying to jump from runloop 3339 to runloop 3226]
Null PMC access in clone()
oh. $!from and $!to are uninitialized in the protoobject. 14:09
$P0 = self.'from'()
from = clone $P0
jonathan pmichaud: I worked around that bug in Junction. 14:10
pmichaud .sub 'from' :method $P0 = getattribute self, '$!from' .return ($P0)
.end
we should check for null there.
DietCoke whenever I see that now, it's often an exception getting thrown from PIR through C into PIR again.
you might actually get the exception properly in the cx branch. (if it's building atm.) 14:11
jonathan pmichaud: It's only the proto that has the issue. The call to new, for instances, fills all attribute slots with undefs.
DietCoke We are down to 48 tickets that don't have some kind of [TAG] in them.
jonathan Thus for any normal instance you know it's never null and can skip the check.
I *think* proto-objects probably should blow up on state access anyway... 14:12
pmichaud I wonder why .WHAT is generating a clone anyway
(protoobject blowups)++ 14:13
however, I'm not sure that calling new should fill all attributes with undefs. 14:14
(for the same reason that saying my $a; should not automatically fill $a with undef) 14:15
(namely, existence.)
jhorwitz pmichaud: any further thoughts on the metaclass issue i was having yesterday? 14:18
namely this: Method 'item' not found for invocant of class 'Apache;RequestRec'
pmichaud jhorwitz: yes, I think I need to convert item() into a function.
that then re-dispatches to the method if it exists. 14:19
jhorwitz when is that invoked?
pmichaud assignment.
purl assignment is different in scalar contexts than in array context
jhorwitz ah, so when i pass $r to a mod_perl6 handler, it gets assigned
pmichaud yes.
jhorwitz is that significant work on your part? 14:20
pmichaud but I don't think we can rely on every object (e.g., non-Perl6 objects) having a .item method.
no, not too significant.
I can take care of it in about an hour or so.
actually 90 mins. (right now $otherjob calls.) 14:21
jhorwitz needs to pay the bills as well. :)
14:49 cjfields joined
dalek r28131 | Whiteknight++ | gsoc_pdd09: 14:49
: [gsoc_pdd09] update to trunk r28129
diff: www.parrotvm.org/svn/parrot/revision?rev=28131
14:51 DietCoke left
dalek r28132 | fperrad++ | trunk: 14:55
: [Lua]
: - factorize some rules (easy with Perl)
diff: www.parrotvm.org/svn/parrot/revision?rev=28132
r28133 | Whiteknight++ | trunk: 15:03
: [nqp] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28133
r28134 | Whiteknight++ | trunk: 15:04
: [languages/squaak] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28134
r28135 | Whiteknight++ | trunk: 15:07
: [docs/art] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28135
r28136 | Whiteknight++ | trunk: 15:09
: [docs/pct] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28136
r28137 | Whiteknight++ | trunk: 15:12
: [tools/dev] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28137
r28138 | Whiteknight++ | trunk: 15:14
: [examples/past] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28138
r28139 | Whiteknight++ | trunk: 15:15
: [examples/pir] update to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28139
r28140 | Whiteknight++ | trunk: 15:24
: [Rakudo] update builtins to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28140
r28141 | Whiteknight++ | trunk: 15:29
: [Rakudo] update classes to use ".namespace []" instead of ".namespace", as per #48549
diff: www.parrotvm.org/svn/parrot/revision?rev=28141
15:32 cjfields_ joined 15:38 Zaba_ joined
dalek r28142 | pmichaud++ | rakudoparam: 15:41
: Removing obsolete rakudoparam branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28142
r28143 | pmichaud++ | mutablerakudo:
: Merged to trunk, removing obsolete branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28143
r28144 | pmichaud++ | mutamerge: 15:42
: Merged to trunk, removing obsolete branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28144
r28145 | pmichaud++ | userstack:
: Merged to trunk, removing obsolete branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28145
particle pmichaud++ # dead branch cleanup 15:43
(spring cleaning)++
cotto_home purl, spring cleaning is www.ibiblio.org/Dave/Dr-Fun/df20020...020402.jpg 15:50
purl OK, cotto_home.
particle (gmail labs)++ # mouse gestures in gmail 15:51
15:53 cout joined
japhb Why is everyone so careful to delete old branches? 15:54
particle we don't need them anymore
keeps the size of the repo smaller 15:55
pmichaud keeps the perceived size of the repo smaller :-)
the repo itself doesn't actually get smaller :-)
japhb pmichaud: hence my confusion. 15:56
moritz git would make the repo smaller ;)
japhb So it's just perception then?
Infinoid I like the practice... less clutter makes it easier to pick out the useful stuff
jonathan pmichaud: If it's still there, mutamerge can go too, I guess.
japhb moritz: +1 on that idea
... too bad it's probably not as portable as SVN yet
moritz japhb: you get a better overview of the active branches when you delete the inactive ones
pmichaud japhb: It's simply easier if they're removed when no longer needed, so that we no longer ask ourselves "is this branch imporant? What's happening here?" 15:57
japhb pmichaud: That was my guess. Makes sense, I suppose.
moritz
.oO( and reduces the size if somebody is stupid enough to check out /branches or even / )
japhb vany: ping 15:59
pmichaud for example, there's a branches/gmc/ branch which none of us really knows is worth keeping around. (However, it's so old by now we should probably just get rid of it.) 16:00
japhb Could someone with Win32 try the latest (2008-06-05) OpenGL patch attached to RT #55228, please? 16:01
pmichaud: nodnod
particle pmichaud: it's a generational garbage collector, from 2006 SoC project 16:07
it is blocking on some stm fixes that may not have been resolved
in any case, branches/gms has been a help to Whiteknight i believe 16:08
Whiteknight yes, I've been reading it 16:09
i haven't gotten to that point, but i'll probably steal some code wholesale
16:12 Zaba joined, Theory joined
Tene purl: nopaste? 16:12
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl
nopaste "tene" at 160.79.186.34 pasted "Failing build. Has anyone ever seen this before?" (8 lines) at nopaste.snit.ch/13196 16:14
Tene prods buildy-people.
particle tene: no, but i suspect he has an old Storable 16:16
there were incompatible changes at some point
cpan Storable ; make -j realclean etc
Whiteknight pmichaud, ping 16:29
pmichaud Whiteknight: pong
Tene particle++ # on-demand problem-fixing 16:30
Whiteknight I'm working on 48549 and I have to update PCT to emit the proper directives
particle Tene: that's why they pay me the big bucks here!
Whiteknight I think i've traced the issue to the CodeString.pmc:key
pmichaud (big bucks)++
Tene purl: give particle a deer
purl Tene: huh?
moritz a deer? ;-) 16:31
masak "big buck" == "deer"
a large, male one, to be exact
pmichaud Whiteknight: I don't know that you'll be able to "fix" this particular issue just yet 16:32
moritz masak: thanks ;)
masak np ;)
pmichaud in particular, because PIR doesn't recognize "[]" as an empty key yet
Whiteknight pmichaud, that's okay, that's what I figured
pmichaud (this is why I was also commenting that we shouldn't rush to deprecate ".namespace" yet.)
Whiteknight that's why I ask first
masak has been listening too much to 'tirdy point buck'
pmichaud I think the answer is for PCT to see if CodeString.key returns an empty string, and replace it with "[]" when generating the namespace directive. 16:33
Whiteknight okay, well both ".namespace" and ".namespace []" work currently, so there is no hurry either way. I'll put the ticket on the back burner
pmichaud or, have CodeString.key generate "[]" for an empty namespace, and check for that when generating a get_* opcode. 16:34
but I think this latter option is much more difficult.
(because there are so many opcodes involved.)
Whiteknight okay, i'll make a note of the options in the ticket, and we can wait till we're ready to move on it 16:38
16:50 cotto-work joined
cognominal_ webkit.org/blog/189/announcing-squirrelfish/ # yet another register based vm 16:57
particle amazon.com/ # amazon is down! 17:41
Tene don't you mean amazon.com/?referrer-id=tene ? 17:43
diakopter particle: maybe they were bought by Microsoft
17:51 sjansen joined 18:21 iblechbot joined 18:22 ruoso joined
dalek particle | A foundation for Parrot: 18:59
link: www.perlfoundation.org/parrot/index...for_parrot
shorten dalek's url is at xrl.us/bkxq5
dalek particle | parrot_foundation_notes: 19:00
link: www.perlfoundation.org/parrot/index...tion_notes
shorten dalek's url is at xrl.us/bmna5
19:06 DietCoke joined
DietCoke patches welcome? 19:06
purl, feel fre?
purl dietcoke: i haven't a clue
DietCoke purl, feel free?
purl dietcoke: bugger all, i dunno
DietCoke you suck, purl.
purl that be FIE DOLLAH
19:55 Zaba_ joined
particle hey dalek! i want karma for wiki edits, too! 20:10
diakopter particle: the problem is that folks' names on the wiki site vary widely from their irc names 20:13
except yours
purl except yours is 9" bigger.
jhorwitz purl is inappropriate
diakopter indeed
jhorwitz was expecting a witty comeback
moritz purl, forget except yours 20:14
purl moritz: I forgot except yours
particle :)
Khisanth you're just thinking inappropriate things, she could have been referring to any number of things 20:20
DietCoke jhorwitz: Jeff. 20:22
er, !
20:26 Zaba joined
japhb Is there someone here who can test the #55228 patch on Windows? 20:27
DietCoke I can tonight. 20:29
japhb DietCoke: Ah, cool. 20:31
DietCoke: I will be away for a few days ... if your Win32 test is successful with that patch, go ahead and commit it. I already have Linux and Mac OS X signoff. 20:32
pmichaud particle: change your nick on perlfoundation.org to "particle++" 20:42
purl pmichaud: that doesn't look right
pmichaud then you'll get karma for wiki edits :-)
Tene Hm. If I'm going to get something done on the plane, I need caffiene. 20:56
20:57 slightlyoff joined, slightlyoff left
particle :) 20:59
Tene Coke++ 21:04
jhorwitz DietCoke: pinging me? 21:13
Tene jhorwitz: I'll ping you if you'd like. 21:19
21:21 Zaba_ joined 21:23 davidfetter joined 21:26 teknomunk joined
dalek particle | parrot_foundation_notes: 21:37
link: www.perlfoundation.org/parrot/index...tion_notes
shorten dalek's url is at xrl.us/bmna5
jhorwitz Tene: don't tease me 21:39
davidfetter when's that parrot hacking thing going on @ yapc? 21:44
jhorwitz weekend prior
jhorwitz can only make sunday afternoon. :( 21:45
davidfetter d'oh
i'm thinking of flying in friday evening
DietCoke i'm there friday night, as is chromatic, I think. 21:47
->
21:48 IllvilJa joined
davidfetter jhorwitz, any chance i can steal some of your time in re: my ever-expanding vaporware integrating parrot and pg? 21:50
davidfetter wonders whether there are plans to have parrot generate C 21:51
moritz davidfetter: PGE or parrot?
davidfetter um, i guess pge
basically, i'd like to see about replacing lexx/yacc 21:52
moritz PGE then
21:56 ank joined
davidfetter how far is pge from being able to emit C? is anyone else interested in that? 21:56
22:05 dolmen joined
davidfetter listens to chirping crickets 22:08
pmichaud I don't have any plans for PGE to emit C. PGE really expects to have an underlying hash and array support. 22:15
(and it wouldn't help anyway, unless we know that parrot is bundled with a C compiler :-) 22:16
davidfetter hrm
pmichaud although I have thought about making PGE into its own vm compnent 22:18
davidfetter i'm not following that last statement 22:19
pmichaud PGE emits PIR as its output.
davidfetter k
couldn't PIR be compiled to C?
pmichaud I suppose, but PIR really expects to have the equivalent of the parrot VM underneath it.
So, you could compile it to C, but you'd still need "objects" representing arrays and hashes 22:20
and garbage collection, and coroutines.
davidfetter hrm
moritz you could of course compile PIR to pbc, and link that with libparrot.so 22:22
just like the 'perl6' executable is built
davidfetter :) 22:29
moritz bed & 22:31
davidfetter heads to airport to pick up more people 22:32
22:32 dolmen joined
pmichaud have to be careful not to let the airports become too full of people. 22:35
Patterner I think the TSA is already doing a good job with that. 22:39
dalek r28146 | pmichaud++ | trunk: 22:48
: [rakudo]:
: * Fix .list and !flatten so they don't generate clones of the elements.
: * This also fixes Range.WHAT.
diff: www.parrotvm.org/svn/parrot/revision?rev=28146
22:52 tetragon joined
cotto-work Is there a way to stop PGE from lexing/parsing a file once it reaches a certain token? 23:09
TimToady kill -9 usually works :) 23:24