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 6 June 2008.
00:09 AndyA joined, davidfetter joined 00:11 gmansi joined 00:12 bacek joined 00:13 bsb joined 00:21 particle joined
bacek morning... 00:26
kid51 good morning bacek 00:27
Very quiet here this (for me) evening. Most of USA still in heat wave; slows down both computers and programmers.
bacek kid51: it's winter in Australia :) So it's little bit cold here 00:28
00:29 nopaste joined, silug joined
kid51 Are you still in severe drought there? 00:31
bacek kid51: officially - yes... 00:36
dalek r28212 | chromatic++ | trunk: 00:37
: [src] Allowed PMCNULL as a value for all PMC-containing hashes. Now cloning
: these hashes doesn't produce a segfault when trying to clone PMCNULL.
diff: www.parrotvm.org/svn/parrot/revision?rev=28212
bacek seen pmichaud 00:41
clunker3 pmichaud was last seen on #parrot 2 hours, 57 minutes and 59 seconds ago, saying: most people don't have trouble with that.
purl pmichaud was last seen on #parrot 2 hours and 58 minutes ago, saying: most people don't have trouble with that.
00:41 Eevee joined
dalek r28213 | chromatic++ | trunk: 00:42
: [lib] Made the PMC emitter store PMCNULL in the vtable isa_hash member.
diff: www.parrotvm.org/svn/parrot/revision?rev=28213
bacek yak.. pmichaud rejected my patch for handling PMC NULL in MMD, cause we shouldn't pass NULLs in MMD... Chromatic adds support for NULLs in other parts... 00:45
dalek r28214 | chromatic++ | trunk: 00:48
: [src] Made vtable cloning clone isa_hash member, only after global
: initialization has finished (that is, when isa_hash is not NULL in the source
: vtable). This gives all PIR-declared classes their own isa_hash.
: Also made vtable deleting delete isa_hash member, when appropriate. This
: version looks tricky, but this is to respect that PIR-declared classes have
: separate isa_hash memory between their RW and RO variants. (That's fixable in
: the Class PMC, but only if you want to violate encapsulation.)
: Note that this fixes the double-free error showing up in the Perl 6 fakecutable.
diff: www.parrotvm.org/svn/parrot/revision?rev=28214
00:54 japhb joined 01:07 TiMBuS joined
dalek r28215 | chromatic++ | trunk: 01:10
: [PMC] Tidied Class PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=28215
r28216 | pmichaud++ | trunk: 01:14
: [core]:
: * Backport some CONTROL_* exception constants from the pdd25cx branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=28216
r28217 | pmichaud++ | trunk: 01:20
: [pct]: Initial control exception capabilities.
: * PAST::Block 'control' attribute allows catching exceptions in blocks.
: The special value 'return_pir' generates inline code for catching
: CONTROL_RETURN exceptions and returning the payload.
: * PAST::Op pasttype 'return' generates CONTROL_RETURN exceptions.
: * These only work with a single return value for now; we may generalize
: this to multiple values in PCT, or just leave that for HLLs to
: provide their own return throwers/catchers.
diff: www.parrotvm.org/svn/parrot/revision?rev=28217
r28218 | pmichaud++ | trunk: 01:21
: [nqp]:
: * Add 'return' statement.
diff: www.parrotvm.org/svn/parrot/revision?rev=28218
bacek Ho! pmichaud++!
01:34 Zaba_ joined 01:35 cjfields joined
Whiteknight when is pdd25cx getting merged back in to trunk? 01:42
or is that happening nowish?
bacek Whiteknight: summon pmichaud and ask him :) 01:44
Whiteknight i dont need to summon people to ask stupid questions
I'm just happy to watch him work!
bacek opens next bag with pop-corn 01:45
:) 01:46
02:00 tetragon_ joined
tetragon_ wonders when tetragon will fall over 02:01
DietCoke allison is working on pdd25cx. I'm guessing it'll get finalized this weekend. 02:02
pmichaud I don't have much to do with pdd25cx, other than tremble about the merge. 02:03
since the release is a week from tomorrow, I'm guessing the merge would be post-YAPC? 02:04
(assuming it's finalized this weekend)
02:05 particle joined
dalek r28219 | chromatic++ | trunk: 02:06
: [src] Fixed the STRING_compare signature to signify that the bucket key may be
: NULL. This fixes a segfault in the optimized build. All tests pass.
diff: www.parrotvm.org/svn/parrot/revision?rev=28219
DietCoke yah. 02:10
presuming things go well at the hackathon.
02:21 particle joined
dalek r28220 | pmichaud++ | trunk: 02:28
: [cardinal]:
: * Fix properties on src/builtins/guts.pir .
diff: www.parrotvm.org/svn/parrot/revision?rev=28220
02:33 cjfields joined 02:43 confound joined 02:59 particle joined 03:13 TonyC joined
dalek r28221 | pmichaud++ | trunk: 03:21
: [rakudo]:
: * Add 'return'. Only works for single-element values at the moment --
: returning lists and named elements will be available shortly.
:
diff: www.parrotvm.org/svn/parrot/revision?rev=28221
Whiteknight returning multiple values should be as easy as returning a ResizablePMCArray that contains those values 03:23
pmichaud ...not quite. :-)
Whiteknight really? what snags are there?
pmichaud given return(@a,@b) 03:24
Whiteknight i see, said the blind man
pmichaud if called with $a = foo() then $a should not become an Arrayref to the ResizablePMCArray
Whiteknight PCT couldn't handle the translation to/from the array? 03:25
pmichaud yes, it probably will at some point. I just wanted to do the baby step first.
in reality, we have to return both positional and named values
and that doesn't fit into a ResizablePMCArray 03:26
Whiteknight is guilty of oversimplifying
pmichaud i.e., return($foo, @bar, :xyz(1))
which means that the positional and named arguments have to be rolled up into a single pmc (a Capture) that can be carried as the payload of the exception.
Whiteknight is that what a capture is, a combined array/hash? 03:27
pmichaud and then whatever catches that exception has to know how to unpack the Capture back into positional and named arguments
essentially, yes.
Whiteknight there is so much going on in this whole project, it's hard to keep everything straight
pmichaud but on the other hand, we'd like to _not_ create an array and hash every time we're returning a single element. :-)
because that's a bit overkill.
Whiteknight yeah, I know. Of all people I should be weary of creating new garbage 03:28
pmichaud and, of course, other non-Perl 6 HLLs might have their own ideas about how return values work, so PCT should be flexible enough to support those also.
(anyway, you get the point. :-)
Whiteknight thank you 03:29
pmichaud and yes, it's hard to keep it all straight. I don't know that anyone has the full picture. :-)
Certainly I don't.
Infinoid japhb: ping 03:32
03:34 TonyC joined
DietCoke spends his evening merging his various email accounts into a giant googlesink. 03:34
Infinoid is 'googlehole' a naughty word? 03:52
diakopter as in, "that meme went down the googlehole" 03:54
Infinoid more like, "if google gains too much mass it will collapse into a singularity, and the entire Bay area will fall into the googlehole" 04:04
tewk pmichaud: ping 04:08
dalek r28222 | chromatic++ | trunk: 04:22
: [src] Fixed C90 violation in Parrot_destroy_vtable (my fault in r28221).
diff: www.parrotvm.org/svn/parrot/revision?rev=28222
04:24 particle1 joined
dalek r28223 | chromatic++ | trunk: 04:30
: [src] Really fixed src/vtables.c (as r28222 couldn't compile anywhere).
diff: www.parrotvm.org/svn/parrot/revision?rev=28223
04:35 tetragon joined 04:36 rafl joined
pmichaud tewk: pong 04:41
04:43 slightlyoff joined
tewk I have an optable bug. If i use tigheter exclusively it works, if I use equals it doesn't. paste coming 04:44
pmichaud equals? or equiv?
nopaste "tewk" at 155.97.237.62 pasted "proto changes" (31 lines) at nopaste.snit.ch/13221 04:45
japhb Infinoid: pong
tewk equal, this is old code from c99 04:46
04:46 ank joined
tewk I guess it should be equiv 04:46
pmichaud afaik it's always been 'equiv'
tewk maybe its just a bug never exposed. Like I said it is really old code. Thanks. 04:47
c99 was never really heavily exercised. 04:48
pmichaud++
Tene I've seen kjs use equals() in cardinal, too. didn't he work on c99? 04:49
tewk Yeah after I wrote the intial code. 04:52
bacek pmichaud: ping 04:55
pmichaud bacek: pong 04:56
bacek pmichaud: did you have any chance to take a look on my 'LazyList sketch' at nopaste.snit.ch/13208?
pmichaud yes, I did. But I don't think it should be a separate class. 04:57
I think it should just be List.
bacek yes, but I don't want to hack List at the moment.
pmichaud sure, that makes sense.
bacek It's just idea of how it can be implemented.
And I think, that List no 'is-a' RPA, but 'has-a' RPA. 04:58
04:58 sheriff_p left
pmichaud we'll probably do something like that. jonathan and I were discussing earlier that we'll likely have two RPAs to start with 04:59
bacek Because all access to 'get_pmc_*' and 'set_pmc_*' will be wrapped
pmichaud one for already generated items and one for items yet-to-be-generated
bacek hmm... Why we need second RPA?
pmichaud that will make indexed access a bit quicker, and it avoids a lot of splicing
bacek But it's not RPA...
(second one). It's Iterator. 05:00
but on each indexed access you have to check that element already generated 05:01
pmichaud how would @a = (1, 2, 5..10, 15, 20..100) be stored?
bacek pmichaud: list of [1, 2, (Range(5..10), 15, Range(20..100)] 05:02
pmichaud ...extra paren, there?
bacek oops. Yes
pmichaud jonathan and I think that better would be
[1, 2] and [Range(5..10), 15, Range(20.100)] 05:03
after asking for element [4], we would have
[1,2,5,6,7] and [Range(8..10), 15, Range(20..100)]
bacek so, second RPA is 'RPA of Generators'. Makes sense 05:04
pmichaud right.
shifting a value simply removes it from the generated list (generating one if needed)
bacek It's almost same way, how it implemented in my code. 05:05
pmichaud right, but I don't think we need a '$!next_item'
Infinoid japhb: r27975 caused a bunch of warnings for me. should I send you a tarball of my GL headers, or something?
pmichaud nor do we need a separate $!iterator
bacek we need 'next_item'. What about get_boo/shift combo? 05:06
pmichaud ...?
purl quietly listens while the crickets chirp
bacek 'separate $!iterator' should be 'RPA of generators'
pmichaud okay, I'd go for that then.
japhb Infinoid: that's never a bad idea. But I just got back from a trip; I need to find out what r27975 *was*. ;-) 05:07
pmichaud essentially they're things that understand 'shift'
bacek when we check get_bool we can prefetch next item fromgenerator
pmichaud all that means is that we make sure there's at least one element in the 'generated' list.
Infinoid japhb: [OpenGL] First cut of parsing OpenGL headers
pmichaud get bool is the same thing as exists [0]
Infinoid japhb: warning text available on RT #55530
japhb Infinoid: hmmm. Has DietCoke not committed my patch from last week?
bacek so, we require, that generator implements 'get_bool' as well 05:08
pmichaud no.
bacek how that?
Infinoid japhb: I don't know. I do know that every version since has emitted a bunch of warnings. I'll send you my headers in an email
pmichaud oh, on second thought yes.
but most generators do.
Range does. List does. 05:09
japhb Infinoid: thank you.
bacek pmichaud: ok. Anyway, we can create generic proxy class for generators that don't
pmichaud right.
japhb But also, can you apply the latest patch on #55228 and see if it fixes your problem? 05:10
Infinoid: what platform was this?
05:10 tetragon joined
pmichaud Right now I'm writing 'fail'. 05:11
and then we can get try and $! fixed.
bacek pmichaud: excellent.
pmichaud: I tried to figure out, how to handle '$a=try{die}'... Unsuccessfully... 05:12
It require more knowledge about PCT that I have...
Infinoid japhb: Linux/amd64 (gentoo) with some fresh git checkout of mesa 05:14
japhb Infinoid: gotcha. Did the latest patch on #55228 help?
Infinoid I will check now
japhb Infinoid: thanks.
I'd asked DietCoke to test and commit that patch while I was gone (since it vastly reduced warnings for several people) but it looks like he did not. 05:15
Might have been nervous about committing if I wasn't there to pick up the pieces if things broke .... 05:16
Infinoid japhb: yes, it does help. the number of warnings is greatly reduced... only 8 left 05:17
without the patch, I get pages and pages of them.
japhb great. paste the remainder?
bacek pmichaud: BTW, #55482 and #55484 more improvements of the List. (min/max/uniq)
nopaste "Infinoid" at 75.5.240.108 pasted "japhb: Here's what's left over." (9 lines) at nopaste.snit.ch/13222 05:18
japhb foomesa?!? WTF is foomesa? 05:19
Sheesh.
OK, I know what to do.
Infinoid hell if I know :)
webcvs.freedesktop.org/mesa/Mesa/in...iew=markup looks a lot like mine. 05:20
shorten Infinoid's url is at xrl.us/bmr6j
japhb Infinoid: Ah. Example on how to write Mesa drivers. 05:21
Infinoid how ... useful for it to install that on production machines. 05:22
japhb NODNOD 05:23
dalek r28224 | chromatic++ | trunk: 05:25
: [src] Refactored Continuation PMC's invoke vtable entry, extracting three
: functions into src/sub.c. This allows the RetContinuation PMC to use two of
: those functions directly, rather than forcing Continuation to check if it's
: really a RetContinuation.
diff: www.parrotvm.org/svn/parrot/revision?rev=28224
japhb Infinoid: OK, I've attached an updated patch to your ticket (I'll point the old tickets to this one). Give it a try. 05:26
Infinoid Looks good, you devious git user you. 05:27
Generating OpenGL bindings............................................done. 05:28
japhb Infinoid: heh
awesome
Infinoid no idea if it builds yet, but it configures nicely
05:29 cognominal joined
japhb Infinoid: give the build a try. IF it works, I'll commit and risk not having gotten Win32 signoff, because this is the third ticket filed on this same warnings issue from various other platforms. 05:29
Infinoid Configures, builds and runs just fine. 05:31
the triangle.pir did emit a message about "Failed to initialize TTM buffer manager. Falling back to classic."
otherwise, I didn't notice any noise at all.
is the triangle bigger than it used to be? 05:33
japhb Erm ... shouldn't be. 05:35
Infinoid it's late, I'm probably just remembering it wrong. 05:36
japhb wonders what the "TTM buffer manager" is ... some Mesa thing, mayhaps?
Infinoid window_width = display_width * parrot_version;
japhb heh
Infinoid goodnight
japhb g'night 05:37
committed 05:38
purl The chicken is involved, but the pig is *committed*.
dalek r28225 | japhb++ | trunk:
: Merge branch 'cognominal-ivan-fix'
diff: www.parrotvm.org/svn/parrot/revision?rev=28225
05:49 bacek_ joined 06:03 Zaba joined 06:17 Psyche^ joined 06:21 iblechbot joined 06:37 uniejo joined 06:41 Zaba joined 07:47 Zaba_ joined 07:49 bacek joined 07:51 masak joined 08:14 tetragon joined
cizra www.parrotcode.org/docs/imcc/imcfaq.html says that Named variables are either local or namespace qualified. Currently IMCC only supports locals transparently. 08:21
What does that "transparently" mean?
08:28 iblechbot joined
moritz probably "without further action from the user" 08:29
08:30 IllvilJa joined
cizra I still don't understand. 08:43
Oh. Right. Emphasis on "only". That is, namespace-qualifieds aren't as well supported. 08:48
09:56 slightlyoff joined 10:17 skv joined 10:18 Ademan joined 10:20 bacek joined 10:41 jan joined 10:42 jan_ joined
bacek t/spec/S16-filehandles/connect.t................ 4 4 0 0 0 4 11:30
pmichaud, we should remove this test from spectest_regression.. 11:31
It's useless.
probably S29-num/complex.t too. 11:34
t/spec/S29-str/sprintf.rakudo................... 37 37 0 0 0 37
yak...
all 37 tests skipped... 11:35
jonathan pmichaud did some work on complex numbers recently, so we should have something in spectest_regression to check what works so far.
pmichaud I think it's already there.
bacek jonathan, ok, I'll test check it.
pmichaud t/spec/S29-num/complex.rakudo................... 129 129 3 0 1 125
3 pass, 1 todo, 125 skip
the 125 skip will be a lot less as soon as I get -> working in infix position. 11:36
although now that I look at that (what I just wrote) I'm not sure why -> doesn't work already. 11:38
jonathan Gets parsed as infix:-
And wants a term, not a > 11:39
pmichaud but it would need another term in order for that....
jonathan I think.
pmichaud and since there's no other term available, it should backtrack.
jonathan Yeah, but it doesn't backtrack.
Oh?
I didn't think the parser backtracked...
Apart from in a few cases...
pmichaud the operator precedence parser returns the longest complete expression
jonathan Oh, OK.
pmichaud (at least, it's supposed to.)
I'll play with that this morning.
jonathan But -> isn't known to the operator precedence parser.
It's only in the grammar.pg 11:40
Cool, would be nice to have fixed. :-)
pmichaud -> doesn't have to be known to the operator precedence parser
all the opp needs to know if that -> doesn't parse as part of a valid expression in operator position
s/if/is/
11:40 IllvilJa joined
jonathan OK 11:42
I'll leave you, to investigate. :-)
pmichaud don't leave me!!!!! er.... OK. :-)
jonathan ... 11:43
pmichaud man I have lots of email today. :-|
bacek pmichaud, (about S29-num/complex.t) all other tests depends on unpolar(), which not implemented yet. 11:48
pmichaud, yak... 3 days ago.. 11:49
pmichaud I added unpolar(). :-) 11:50
even cis() depends on unpolar(). :-)
masak what's unpolar()? 11:51
pmichaud convert from polar coordinates to rectangular (in imaginary space) 11:52
purl I don't know how to convert from polar coordinates to rectangular (in imaginary space).
pmichaud purl, I do -- use unpolar! :-)
see S29. :-)
masak ok 11:53
is 'unpolar' a more clear name than 'rectcangular'? 11:54
it's not too often that things are specified by what they ain't
pmichaud yes, 'unpolar' was very unfamiliar to me as well.
masak the name is doubleplus-ungood, if you ask me 11:55
Zaba_ polar2rectangular would work out :> 11:56
masak or even 'torect' 11:57
or even just 'rect()'
yes, I think 'rect()' is in the sweet spot 12:02
I'm afraid 'unpolar()' would become very unpopular ;)
12:02 Whiteknight joined
dalek r28226 | Whiteknight++ | gsoc_pdd09: 12:02
: [gsoc_pdd09] updating to trunk r28225
diff: www.parrotvm.org/svn/parrot/revision?rev=28226
bacek > say 4.unpolar() 12:03
Method 'unpolar' not found for invocant of class 'Int'
pmichaud it's only defined on Num at the moment.
bacek pmichaud, got it... 12:07
bacek still try to understand why Int is not a Num...
pmichaud because Parrot doesn't have it that way in the hierarchy 12:09
masak but it should be, right? 12:10
pmichaud I don't know. I haven't investigated that part of the spec.
bacek pmichaud, copy-paster unpolar in Int works fine :) 12:11
pmichaud I don't plan to duplicate methods if I can avoid it.
as things stand now in rakudo, 4.unpolar will probably start working when we get method fallbacks working. 12:12
or when we figure out the relationship between Int and Num
Whiteknight "make perl6" just failed for me. Segmentation fault.
bacek pmichaud, probably Int is Num... It's DWIM-style 12:13
masak I would sure hope it is
pmichaud yes, but I don't think that Int should carry around Num's attributes. 12:14
otherwise... what's the point?
so it's not a simple "Int isa Num" relationahip.
*relationship
bacek Num-to-Int autocoercion is an explicit exception built into the 12:15
language. Perl 5 programmars would lynch us if we broke it. But yes,
it's basically cheating.
12:16 tetragon joined
bacek Guess who :) 12:16
(I know that it in backward direction, but I just like this quote)
pmichaud, pugs says that Int isa Num. 12:25
DietCoke Nom isa Nom 12:40
... lolcode needs the ... operator, except we can call it nom nom nom. 12:49
DietCoke <- dork 12:50
12:50 TiMBuS joined
bacek probably bang bang bang is better name :) 12:50
Newly passing tests: 12:54
S29-list/join.t
S29-list/reduce.t
12:54 particle joined
pmichaud bacek: I'm not saying that we won't fix Int to Num autocoercion, I'm just saying it's not immediately obvious how to do it. 12:54
bacek pmichaud, adding Num as parent of Int didn't brake spectest_regression :) 12:56
12:56 radhios joined
bacek but probably autocoerce Int-to-Num will work too 12:56
pmichaud bacek: where did you find that quote, btw? 12:58
bacek Larry's mail
pmichaud recent email?
on a mailing list?
i.e., I'd like to read the surrounding conversation
bacek just a sec. I'll find it again :) 12:59
groups.google.com/group/perl.perl6....e250dbdafc 13:00
shorten bacek's url is at xrl.us/bmsmg
bacek Jan, 2007
pmichaud thanks. 13:01
bacek what is semantic of '<:'??? 13:02
pmichaud in what context?
bacek Int <: Num 13:03
pmichaud oh, I have no idea.
that's often true for me when looking at things TSa writes.
it's not a Perl 6 operator.
original is a very long thread. 13:05
www.nntp.perl.org/group/perl.perl6....26860.html 13:06
shorten pmichaud's url is at xrl.us/bmsmt
bacek wants something like xmlschema-0 for perl6...
It was so easy to implement XQuery compiler when I had full spec... 13:07
s/0/2/ 13:08
www.w3.org/TR/xmlschema-2/type-hierarchy.gif 13:10
pmichaud (int-to-num) I'm guessing that fallback methods will handle a lot of this for us. 13:11
either that or we'll explicitly import certain methods into the Int/Num/Str scopes.
that's about all I'm prepared to worry about for now. :-)
(on that topic.)
DietCoke (full spec) that is exactly why I concentrated on tcl instead of perl6 for so long. =-) 13:12
bacek yep. Fallbacks should solve all this problems...
DietCoke, why not Smalltalk? :) 13:13
13:13 gryphon joined
DietCoke probably would have been easier, in retrospect. 13:16
13:18 donaldh joined
bacek afk # sleep... probably... 13:24
pmichaud, JFYI, there is few tickets in RT for various List improvements. 13:25
pmichaud yes, I know. Still need to look at those.
bacek pmichaud, ok. 13:26
bacek ... need... more... karma... :) 13:27
must sleep 13:29
purl $bacek->sleep(8 * 3600);
bacek Ho. Purl is back 13:30
masak and funny, for once 13:35
DietCoke purl,funny? 13:36
purl i guess funny is at www.denounce.com or at www.pimpdaddy.com or at www.pimpcity.com/humor/underpants.html or [11:09] <Chris-> but can all browsers access perl files.. i expect so or at www.callahanonline.com/ or at www.userfriendly.org/ or www.rahoi.com/2006/03/may-i-take-your-order.php
13:41 nnunley joined 13:49 jhorwitz joined 14:00 Khisanth joined 14:04 iblechbot joined
DietCoke NotFound: IANACP, but shouldn't 14:06
+ STRING *full_name = 0;
be
+ STRING *full_name = NULL; ?
pmichaud for better C coding style, yes. 14:08
14:09 particle1 joined
DietCoke NotFound: in general, the patch looks good to me, though. 14:09
jhorwitz DietCoke: started working on tcl registry scripts. getting segfaults. will debug to see whose problem it is. ;-) 14:13
DietCoke me, you, or parrot, neh?
I have a dynops file. 14:14
particle1 NotFound: are Parrot_string_free_cstring and *_get_* in the strings pdd, or is this an api change that requires a pdd update? 14:15
jhorwitz DietCoke: i'll make sure that's being pulled in.
particle jhorwitz: sorry about yesterday, my phone line went dead and i had to fix it 14:17
jhorwitz np
pmichaud jhorwitz: fwiw, rakudo now has 'return' 14:18
particle pmichaud: did you get multivalue return working?
jhorwitz pmichaud++
pmichaud not yet. I know how to do it, just want to figure out the appropriate factoring.
particle also had to rebuild his computer, so has lost a bunch of irc history 14:19
Whiteknight no he didnt, and he refused to use my naive and terribly inefficient methods to do it
particle but now #parrot is logged, so nbd
pmichaud :-)
particle Whiteknight: how rude!
Whiteknight i know, right?
jhorwitz particle: bad day at the office, eh?
pmichaud yes, I'm wanting to avoid creating a hash/array for every return operation :-)
particle jhorwitz: to say the least...
particle is installing parrot development dependencies atm 14:20
particle thinks pmichaud is lazy
PerlJam having return means we can "easily" get to gather/take I think. (since take is a fancy return)
pmichaud it's one of my vices and virtues, yes :-)
Whiteknight which synopsis is gather/take defined in? 14:21
PerlJam Whiteknight: S04 I think
Whiteknight i like to keep up on perl6, my interest in that is what lead me to parrot in the first place 14:22
pmichaud I haven't quite figured out gather/take yet.
PerlJam It's the same one that talks about "contend" (and is the only reference to contend that I can find anywhere)
pmichaud > for 1..10 -> $a { print "$a "; }; say "done"; 14:23
1 2 3 4 5 6 7 8 9 10 done
yay.
dalek r28227 | pmichaud++ | trunk: 14:24
: [pge]:
: * Fix backtracking bug in OPTable.
diff: www.parrotvm.org/svn/parrot/revision?rev=28227
PerlJam pm: I thought I understood gather/take until the description was reformulated to talk about Captures and such. Now I'm fairly sure I don't quite understand them anymore. :) 14:25
But most of the magic seems to be in take and take is a fancy return AFAICT
Whiteknight From what I am gathering, the capture is implied based on the arguments you pass to take 14:26
PerlJam Whiteknight: was that a pun? :)
Whiteknight ...not intentionally...
PerlJam Whiteknight: the last time I looked at it, it seemed the take is a no-op in a way except that it affects the return value of the gather. i.e. $a = $b; is exactly the same as $a = take $b; except that the later adds a Capture of $b to the return value of an enclosing gather. 14:29
jonathan pmichaud: That patch, looks like it was more frustrating to work out why was needed, than to write. ;-)
PerlJam but what happens when you call take without an enclosing gather? I have no idea.
pmichaud jonathan: you would be entirely correct. 14:30
jonathan pmichaud++ # finding the bug
masak PerlJam: that would be an error, methinks
PerlJam and what if you go gather { foo(); }; sub foo { ... take $bar } ?
Whiteknight PerlJam, okay, I can see that
jonathan Does that mean my $x = -> $a { say $a } works now?
masak PerlJam: also, I'd not describe take as a no-op, since it's lazy, so take works a bit like yield in ruby 14:31
pmichaud was that not working before?
(I don't know if it works now.)
masak PerlJam: that works. gather is a dynamic construct
jonathan It wasn't; I thought that was the bug you were chasing, actually.
masak I was on #perl6 when they decided that years ago
pmichaud well, for 1..10 -> $a { say $a; } works now and didn't before.
my $x = -> $a { say $a; } doesn't work
jonathan Ah. 14:32
plzicanhazfix? ;-)
pmichaud I don't know why that one would be failing.
oh, yes I do.
Yes, that's a different bug from the for 1..10 -> one 14:33
fixing my $x = -> $a { say $a; } will require a bit of OPTable refactoring.
(the difference is the use of -> in term position versus operator position)
jonathan Ah, ok 14:34
If it's a pain to do now, I'm not in a huge hurry for it.
pmichaud it's a small pain.
I was thinking the two were the same bug, but apparently not.
PerlJam masak: that feels wrong to me for some reason. 14:35
masak PerlJam: the dynamicness?
PerlJam masak: yes.
masak the feeling will pass, I hope
it's wonderful!
pmichaud I agree that 'take' sounds more like .yield than return.
14:35 Zaba joined
pmichaud but it's essentially the same concept. 14:36
PerlJam pmichaud: except that yield suspends execution and take doesn't, it just grabs a Capture of its args.
masak PerlJam: take essentially suspends execution, yes
pmichaud PerlJam: except that I think that gather/take is lazy, which means we don't take until we need it. :-)
masak PerlJam: more correct to say that a request to a gather/take instigates execution :) 14:37
PerlJam gather/take,contend,async,lazy are all "do-like" things that all seem underspecced to me (in that they evoke more questions than answers :) 14:38
masak PerlJam: in such a case, questions are exactly what is needed, so ask away 14:39
PerlJam well, I'm only going by memory rather than the spec, so I might just be way off base. 14:40
masak true.
pmichaud actually, some of us are noticing that questions on p6c are taking an awfully long time to get responses/answers.
PerlJam pm: so answer them faster! ;)
pmichaud pj: in many cases I'm the one asking the questions. :-) 14:41
PerlJam I've noticed. 14:42
But if Larry can talk to himself on mailing lists, you can too
pmichaud ...except I don't do language design. :-)
PerlJam Larry has the toughest job. 14:44
masak indeed 14:51
maybe he's unusually busy right now 14:52
DietCoke another con coming up shortly.
DietCoke hits the mailing list. 14:53
DietCoke finds that the pdd25 branch is still horked. 14:55
pmichaud oh, I do believe he's busy, yes.
afk, errands.
15:03 Whiteknight joined 15:11 jan_ joined
tewk pmichaud: Is there a definition of \\w or <wb> anywhere? 15:11
15:18 Zaba_ joined 15:25 rdice joined
particle tewk: like a spec, or in the code? 15:31
particle tries to get his env set up faster for parrot develoment
tewk particle: either, I guess. I have a rule for builtin types that includes "int" however it matches against "int32_t", which it shouldn't 15:32
particle ah, you need to anchor the end of word 15:33
tewk I'd like to put <?wb> at the end of the builtin_types rule 15:34
particle take a look at languages/squaak/src/parser/grammar.pm:191 15:35
token keyword { ['and'|'or']>> } # note the anchor
tewk I thought <?wb> and >> where the same but I'll try >> 15:36
particle i believe they are the same
15:44 davidfetter joined
DietCoke huh. I'm on the smolder-users mailing list. 15:44
nifty: I am shoving all the mail from my desktop into my gmail account. I am now seeing current followup RT messages having history that wasn't there a week ago before i started this. 15:46
16:06 Theory joined
tewk Who wants to write me a chomp opcode? 16:08
confound chompcode 16:09
DietCoke substr not good enough for ya? =-) 16:10
ah, chomp, not chop.
I could whip up a dynop for you.
tewk I could really use it, I just don't want to get off task. 16:11
DietCoke if this were tcl, I'd put it in my pre-existing ops file.
if you can get another committer to say we need it in core, I'll add it there. =-) 16:12
tewk You write the op, I'll get it in as a core op, unless some one objects.
particle tewk: you need an opcode, or can you use a pir lib?
tewk There are experimental core ops, it could be a pir lib too. We have substring, chopn as opcodes. chomp seems like a primitive string op. 16:13
It is definitely usefull as a pir debugging aid.
particle i think it exists today in pir
that's why i ask
tewk ahh, where 16:14
purl it has been said that ahh, is there a var that holds the total number of parms ?
particle i don't have ack installed yet
probably under runtime/parrot/library
NotFound runtime/parrot/library/String/Utils.pir
tewk I still think it should be an op, but pir would work for the time being.
DietCoke hokay. 16:15
tewk I'm hacking PGE to provide ugly trace functionality, but I can probably find a place to generate the pir include.
offtopic, but tewk loves git. I won't ever go back. 16:16
confound too
16:17 Zaba joined
NotFound Someone bored can try my last patch in #44499 and do some benchmarking? 16:17
tewk rebasing is so easy, backingup local branches to arbitrary locations is easy too.
16:18 cjfields joined 16:24 particle1 joined
particle1 jhorwitz, DietCoke: how's the heat? 16:27
jhorwitz brutal
particle1 SEATTLE -- A foot of new snow is expected Monday night for the west slopes of the north and central Cascades, the National Weather Service said in a heavy snow warning issued Monday morning.
that's 40mi from here
particle we had ski resorts open on memorial day 16:28
unreal.
jhorwitz makes an offering to his A/C compressor
TimToady maybe I can afford to fix my A/C this year... 16:30
pmichaud: I would prefer that language design questions show up in p6l, which I tend to read more frequently than p6c 16:32
where frequently is currently defined as less infrequently... :/
16:43 paggas joined
DietCoke it's 90 here today. 16:44
TimToady was 96 here yesterday 16:45
particle it was 59 here yesterday
DietCoke TimToady: would it help if there were a queue of some kind that had a list of "things that need larry"? or is the mailing list fine?
whatever's easiest for you, we can adapt. 16:46
TimToady p6l is best for that
if I don't answer something there it's usually because I'm still thinking about it
as opposed to not having noticed it
particle that's no excuse!
:P
TimToady well, it's getting to the point where all the easy questions have been answered, so all you ever ask is hard questions :P
DietCoke "why didn't you invent tcl!?" 16:47
TimToady John beat me to it
particle let's hope you beat john to perl 6 16:48
DietCoke bah, they're coming up on tcl 9!
is just glad we didn't go the sun numbering route. 16:49
cotto-work NotFound, what kind of benchmark were you hoping for?
it looks like make && make perl6 are fine with the patch
s/are/works/ 16:50
particle i had no idea parrot was born of al qaeda: search.cpan.org/~simon/parrot-0.0.1/
NotFound cotto-work: forget it, I think now that the speedup I was seeing was an illusion.
purl NotFound, I didn't have anything matching it, i think now that the speedup i was seeing was an illusion
cotto-work done
NotFound But anyway, it avoids a lot of leaking. 16:52
DietCoke stares blankly at particle. 16:54
(to be clear, I obviously don't think that just because they have a higher release number that they're better. =-) 16:56
cotto-work funny that purl doesn't ignore answers addressed to other irc users 16:57
DietCoke didn't Andy define a macro for string comparison? hurm. 17:01
Andy STREQ and STRNEQ
rather than using strcmp() as a boolean
DietCoke ah, there they are.... and here they are here. 17:02
ah. those are just for cstrings? 17:03
(for parrot stuff, I can use string_equal, etc?) 17:04
if (string_equal(a,b)==0) seems like bad C form, though.
DietCoke thinks that if (! string_equal(a,b) ) is more idiomatic, yes? 17:05
NotFound DietCoke: agree.
TimToady thinks strEQ is best :) 17:06
DietCoke NotFound: if you're bored, you could patch a great deal of src/pmc/*.pmc with that style update. 17:09
particle cage ticket? 17:10
NotFound DietCoke: What update?
purl update is fine it's just that people don't apply the updates or the sql-ism for it
DietCoke NotFound: nevermind. string_equal has return values like strcmp, so that usage is better. ah well 17:11
DietCoke thinks we should change string_equal to just return true or vfalse, there's always string_compare if we want that return value, no? 17:12
NotFound We don't have discussed yet that function name? 17:13
DietCoke NotFound: I can't parse that send.
on a different tack, what the hell benefit does the ATTR declaration give us? =-)
NotFound The name is completely mileading with the usage. 17:14
DietCoke throws away this patch to tcl.
Infinoid NotFound: oh, I've noticed that too. string_equal implies that it should return true when the strings are equal, but it does the opposite. 17:15
NotFound if ((s1 == s2) || (!s1 && !s2)) ---> What?
This is not the same as (s1 == s2) ? 17:16
DietCoke if the strings are equal or they're both null... wouldn't they be equal if they were both null?
seems like.
particle no
not all OSes treat null comparison as eq, do they? 17:17
s/eq/==/
i'd have to check the c89 spec
Infinoid uh, they should
I think its a compiler thing, not an OS thing
particle oh, yeah, maybe compiler
that's what i think i meant. Infinoid++
could be a pessimization, check 'blame' 17:18
DietCoke if it's there for a reason, it should be commented.
Infinoid "Two null pointers, converted through possibly different sequences of casts to pointer types, shall compare equal." -- rm-f.net/~orange/devel/specificatio...draft.html
(whether that's authoritative or not, I dunno, but it matches my expectations.) 17:19
pmichaud Parrot's "string_equal" function is totally misnamed. 17:20
NotFound More questions: a null STRING * is equal to an empty string? The code says yes. 17:21
pmichaud string_equal returns 0 when the strings are equal. But apparently it's been like that since ~r4000 or so.
DietCoke Seems like a good cage task. 17:22
Infinoid it would seem a lot more intuitive to call it "Parrot_strcmp" or somesuch
NotFound And to make the thing more funny, it returns 1 in both null-non null cases.
DietCoke HA! 17:23
TimToady anybody know if there's going to be hackathonery around OSCON?
pmichaud TimToady: if there is, it will be the saturday following.
particle aye
pmichaud I haven't heard the story for sunday yet. I've reserved a room for Sunday night just in case (although my flights are currently booked for Sun also -- but those can be moved.) 17:24
NotFound But using strcmp style when we are interested only in equality is a vaste of time.
TimToady Glo is trying to figure out hotel dates...
.oO(strEQ)
nopaste "particle" at 98.232.7.104 pasted "win32+msvc svn head test failure report :(" (80 lines) at nopaste.snit.ch/13223
pmichaud the string_equal(a,b) == 0 test is used quite a bit in Parrot. 17:25
I agree that something like strEQ would be worthwhile, as longas there's not too much confusion with STREQ
when I first saw string_equal(a,b) == 0 (about 10 days ago) my initial thought was "What the ...?!?!" 17:26
NotFound But is a PARROT_API function, it must be prefixed.
pmichaud TimToady: okay, I'll start posting my language+spec interpretation questions to p6l 17:27
tewk With a name like string_equals one would think the result would be a boolean. instead we get a inverted boolean result.
pmichaud (instead of p6c)
NotFound Yes, to more confussion it does nor work really like strcmp: return 1; /* we don't care which is bigger */
pmichaud starts writing his #parrotsketch report. 60 mins for those keeping score. 17:30
particle can't build perl 6 17:31
NotFound pdd28_strings reflects the current state?
pmichaud pdd28_strings reflects the wannabe state.
i.e., it's a design spec but not yet implemented (iiuc) 17:32
NotFound Then the current implementation of string_equal is broken, IMO.
strlen - The length of the string, in bytes. {{NOTE, not in characters
So the string can be character-equal and string_equal report as not equal. 17:33
Tene #ps in 1 hour? 17:34
particle affirmative 17:35
NotFound And the =item says: Compares two Parrot strings, performing type and encoding conversions if necessary.
But the checked conversion is done *after* length comparaison. 17:36
17:39 barney joined, Whiteknight joined 17:50 Zaba joined 17:56 Whiteknight joined 17:58 wknight8111 joined 18:00 donaldh joined
barney Anybody knows have variable name are aliased in PAST. I tried creating an node with :pasttye('bind') and :name('infix::=') but that acted like a value assignment 18:06
pmichaud :pasttype('bind') means the :name isn't going to be used for anything. 18:07
a 'bind' node expects a PAST::Var as its first child, and some other expression as its second
the first child is then bound to the second 18:08
18:09 purl joined
barney And how do I distinguish between assignment and aliasing ? 18:09
pmichaud assignment is done using an 'assign' or 'copy' opcode 18:10
i.e., replace an existing PMC with a new value.
tewk pmichaud: I've got myself in a pge corner again. I added >> to builtin_type so int32_t wouldn't parse as int. int32_t now parses but int doesn't. I take out the >> and int parses but not int32_t. 18:12
particle umm, huh? 18:13
tewk: you have included 'int32_t'|'int' ?? 18:14
NotFound Again on strings, the string_substr function is called by several opcodes with unchecked string register values, but does not allow a null string argument.
particle notfound: these items would all make excellent cage tickets 18:15
"this looks funny, what should it be converted to?" type things
tewk No there is a rule for parsing builtin types (int) and a different rule for parsing typedefed types. 18:16
particle tewk: where's the code?
purl well, the code is "THE CODE, I NEED THE CODE!!"
NotFound particle: I think that deciding if to change the signature of public api functions is not a simple cage cleaning. 18:18
particle notfound: yeah, i guess you're right. but they're excellent list questions or rt tickets 18:19
much better there than over irc, because more folks will be able to respond
NotFound Agree.
18:21 chromatic joined
moderator Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 6/661 new/open tix | logged in irclog.perlgeek.de/parrot/today 18:22
NotFound I think will be better to completely drop the nonnull parameter usage. It's almost impossible to check his correct usage from jit. 18:22
barney After binding, with pasttype('bind'), a Past::Var $a to a Past::Var $b shouldn't $a change when $b is changed? 18:24
DietCoke questions can also go to the tracking with [RFC] in the subject. 18:25
chromatic NotFound, did you ever send in a CLA?
DietCoke PS in 5.
18:26 Ivatar joined
pmichaud barney: depends on how $b is being changed. If $b is rebound, that doesn't affect $a. 18:26
i.e., $a still remains bound to whatever $b was bound to before the rebind
NotFound chromatic: not yet, I expect to send it this week.
pmichaud NotFound: Send it in! You may already be a winner!
(probably only makes sense in the U.S.) 18:27
DietCoke ... if there. =-P
barney pmichaud: Yes, $b is rebound. That explains it.
DietCoke (me does get it, just poking. =-)
pmichaud #parrotsketch on now (for those who are interested) 18:35
18:36 Zaba joined 18:41 Zaba_ joined
DietCoke pf-proposals TV shield distributor wanted 18:50
Tene DietCoke: how urgently do you care about the ATTR stuff? I just read the mails about it. 18:51
DietCoke tene: meh.
I care more about the HLL stuff. 18:52
chromatic It's probably 90 minutes of work.
18:54 Zaba joined
DietCoke DOOOO it. 18:57
19:01 allison joined
Tene Maybe I'll try to finally churn through the builtins in the class hierarchy. 19:02
for cardinal
pmichaud afk 19:03
Whiteknight allison, question for you 19:04
19:04 cognominal joined
allison whiteknight: yes? 19:06
Whiteknight would it be worthwhile, perhaps in the distant future, of turning the GC into a PMC?
PerlJam Whiteknight: and then the GC and collect itself? :)
Whiteknight well, the scheduler is a PMC now, which is motivation for the question 19:07
allison whiteknight: I'm trying to think of the possible benefits...
Whiteknight plus, we would be able to hot-swap GCs during run time, convert GC-related opcodes to PMC methods, etc
PerlJam s/and/can/ weird brain-o there
allison GC at the moment is a pile of function pointers, and some state data 19:08
but, it's a different set of function pointers than the standard vtable set
Whiteknight "pile of function pointers" -> methods or vtables
allison aye
Whiteknight true, it would require a little fudge
allison so it's definitely conceptually close to an object
Whiteknight I'm mostly thinking about testing, I'm looking for interfaces that would let us look into the GC for testing 19:09
allison I think the only benefit of making it a PMC would be related to reclaiming the memory it uses, but there's only on GC "object" for each interpreter 19:10
Whiteknight Anyway, this is a long way off in any case, definitely post-1.0. I could leave a few openings to prepare for it though
true, but different compilers might like different GC cores, and we could hot-swap on an eval
19:10 Zaba_ joined
allison definitely keep it in mind, especially when thinking about respecting the encapsulation boundaries of the GC 19:11
that'll give us cleaner code, even if the GC always remains as a unique kind of "object"
PerlJam It also sounds like you could have a GCed form of "shared memory" between interpreters.
Whiteknight okay, thanks for the feedback, this isn't anything i'm going to try any time soon 19:12
cotto-work allison, will #parrotsketch be at the same time next week? 19:13
PerlJam you guys could do #ps in person if everyone goes to yapc :) 19:14
allison cotto-work: we didn't make a final call in the meeting, we often skip the weekly meetings in the middle of conferences
cotto-work good to know
particle oops, missed parrotsketch
particle notices tewk missed it too :(
DietCoke Executive decision, no PS. 19:16
allison okay, no PS next week
DietCoke I would like to see a writeup to the list of "what happened in parrot at yapc", though.
Tene Fine, I'll just hold #ps without you guys!
cotto-work struggles to avoid executed parrot jokes
19:19 Zaba joined
tewk tewk: was there just quiet. I read parrotsketch religiously 19:20
particle tewk: you're supposed to report your weekly soc status there
tewk Will do, last week was a little slow. I've been spending my time fighting with PGE. 19:25
wknight8111 last week was slow for me too. I've been fighting with comcast 19:29
particle why don't you two let comcast and pge fight it out? 19:33
DietCoke finds noodles that have 0 calories. 19:44
... that's a lot of fiber.
19:50 NotFound joined 20:12 sjansen joined
tewk pmichaud: ping 20:17
nopaste "tewk" at 155.97.237.62 pasted "PGE >> troubles" (47 lines) at nopaste.snit.ch/13226 20:20
tewk particle: I have a diff you can look at, but the above nopaste is a smaller illustration of my problem. 20:22
particle tewk: why use a rule and not a token? 20:23
for builtin_type?
avar How is "$builtin_type <ws> >>" supposed to match "int Oid;" ? 20:25
tewk I guess I could add an explicit <ws> between unsigned and int.
avar thats my problem! Thanks.
so should I write <builtin_type>>> or move the >> inside builtin_type and make builtin_type a token. 20:26
particle yes
tewk the latter I take it.
particle i'd make it a token, and put >> inside
tewk I had >> inside to start with. I made it a rule because of the whitespace between <signed> and int, but I guess I can add that <ws> explicitly. 20:27
Going to try it.
Works avar++ particle++. 20:29
particle use <.ws> you don't need to capture it
tewk I wasted half a day on that one. 20:30
avar That should teach you to enslave irc people to write your code for you
tewk My problem is that I write serious PGE code once every six months and I forget everything after a month of not using it. 20:34
particle yeah, that is a problem 20:35
pmichaud file an rt ticket :-)
particle to:parrotbug@parrotcode.org\\nsubject:write more pge\\n\\ndear self... 20:36
NotFound Maybe is better to forget all, that way you can learn the changed syntax without interferences X-)
particle bank & 20:37
tewk When things click in PGE, it is one of the most productive tools I've ever used. 20:40
Tene I've never really tried using anything else for parsing. 20:43
much.
20:44 barney joined
tewk There are a lot of cool parsing tools/projects out there. Very few are maintained at production quality over time. 20:47
20:56 Zaba_ joined
tewk How do I do a charcter class in PGE these days that accepts an X or a x? <[xX]>? 21:03
pmichaud yes. 21:04
21:07 davidfetter joined, slightlyoff joined 21:12 sjansen joined
tewk I just parsed 4880 line c program including system headers and it only took 1:30 :). 21:18
Infinoid ooo 21:20
DietCoke if I have a macro helper(.foo), and invoke it like .helper('foo'), is there a way to get that to create a named pmc called helper_foo ? 21:25
(I'm try to remove a bunch of boilerplate that looks up something in another namespace and provides a local pmc you can use to invoke it.) 21:31
tewk I'm parsing a 8000 line program and spending all my time in gc :( 21:35
150m RSS has been running for almost 10 minutes. 21:36
Tene Hm. It might be fun to add Role support to cardinal, even though afaict it doesn't exist in ruby.
tewk ruby has mixins, which are similar to roles. 21:37
chromatic gack
Tene Similar, eh? 21:38
Tene reads.
jonathan You can implement mix-ins with inheritance.
chromatic "When I suggested roles, I can tell you that I did not have mixins in mind."
jonathan :-) 21:39
chromatic Nor interfaces. 21:40
Tene teach again bbiab.
jonathan Sure, but roles can be used to provide both of those too. 21:41
tewk Could be a bug in my code as well, but I'm in GC a lot.
chromatic You can drive in nails with a dull rock, but that doesn't make it a substitute for a hammer. 21:42
Not a *good* substitute that is.
tewk, your app should spend 25-40% of its time in GC. 21:45
NotFound Adding roles to RPG will be great X-)
tewk Well its still going so it might a bug I've introduced. 21:46
cotto-work chromatic, is that typical of CG-ed (dynamic) languages?
s/CG/GC/
Whiteknight I would hope it would be towards the low end of that count, and possibly further then that
chromatic 10% is more reasonable. 21:47
tewk Its typical of unoptimized runtimes (parrot) and naive GC implmentations.
chromatic Our sweep is very inefficient, and global stop the world mark and sweep is somewhat inefficient.
Whiteknight for applications that aren't too memory intensive, GC should be negligible
chromatic Also for long-running applications, where there are many small allocations.
(In that case, avoiding memory fragmentation is a benefit.) 21:48
21:59 IllvilJa joined 22:01 Limbic_Region joined 22:12 Khisanth joined
tewk chromatic: something must be leaking somewhere, my parser is making progress but slowly. 22:26
What can I do to profile it or provide more information? 22:30
chromatic If you can pare down the parse file to something that runs in 30 seconds or so, you can run callgrind on the parse and see what happens. 22:32
A few minutes with kcachegrind should show some interesting data.
This presumes you're on a platform with valgrind and kcachegrind.
tewk It starts out fast and progressively gets slower. 22:35
chromatic We should be able to see trends though. 22:36
The problem with an O(2n) GC (and yeah, lots of handwaving to get it there) is that it gets expensive as n goes up. 22:37
... but it's never *not really* expensive.
So it should show up in any profile that does something useful.
tewk goes to try and find a ~30 second file to parse 22:38
22:40 cjfields joined
chromatic 15 might be better. I've been using the Rakudo actions.pm file for profiling these past few months. 22:40
It takes about 10 minutes to run a callgrind profile, which isn't too bad.
22:46 chromatic joined 23:09 Eevee joined 23:28 ank joined 23:33 Eevee joined 23:44 TiMBuS joined 23:45 grim_fandango joined 23:57 Eevee joined