Camelia, the Perl 6 bug

IRC log for #parrot, 2009-10-16

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Whiteknight dukeleto: intention has nothing to do with it. We don't care why it's abandoned, we only care that it is
00:00 jonathan And one of those "we'll regret it later" things.
00:00 darbelo dukeleto: and then we put it back on the list. historical++
00:00 Whiteknight we can mark it as un-abandoned when it picks up again
00:00 dukeleto Whiteknight: touche
00:00 chromatic My optimization principle: if we really have a register machine and not a half-assed stack machine, why can't we take advantage of what register machines do best: not copying lots of memory around for every call or return.
00:01 Whiteknight jonathan: it removes an unnecessary extra step
00:01 jonathan I'm not saying "omg no never ever do it", but my initial feeling is "huh, that doesn't fit into my mindset of how Parrot works at all"
00:01 dukeleto chromatic: that sounds like a good principle
00:01 Whiteknight instead of putting args into a CallSignature and then moving args from there into the Context, we can put the args directly into the Context where they need to be
00:01 Whiteknight and we can avoid creating unnecessary PMCs
00:02 dukeleto Whiteknight: i think projects that require parrot pre-1.0 is a decent working definition of 'abandoned'
00:03 Whiteknight only if the project is not being worked on
00:03 Whiteknight it's not inconceivable that a project is intentionally targetting an older "stable" Parrot
00:03 jonathan It may be worth looking into or exploring. It just worries me somehow. Maybe another time, when it's not 2am, I'll be able to come up with good reasons why.
00:04 dukeleto Whiteknight:  yes, with that caveat as well. i was assuming "hasn't been worked on and requires parrot pre-1.0"
00:04 Whiteknight ok
00:05 chromatic I don't see the "separation of concerns" arguments.
00:05 chromatic If anything, I think we have too much separation of concerns.
00:05 chromatic We have the arguments passed stored in one place and information about which arguments we're passing stored in another place.
00:05 Whiteknight we certainly won't rush into anything, but unification of some key aspects of the calling hotpath is a necessity eventually
00:05 darbelo dukeleto: my andidates from the list are BASIC, c99, eclectus, forth, lisp, Pirate, PJS, regex, scheme
00:05 Whiteknight there are plans to merge RetContinuation into Context first though
00:06 jonathan chromatic: I thought the CallSignature was meant to hold all details of what was being passed.
00:07 chromatic It is.
00:07 japhb Man, I wish I had enough spare tuits to do a Parrot port of my Perl 5 Forth ...
00:07 chromatic The problem is that it doesn't actually contain the storage of what gets passed.
00:08 jonathan chromatic: Are you conflating the arguments being passed with their final destination after being bound against a signature?
00:08 jonathan I thought a CallSignature directly contained pointers to the PMCs being passed...
00:08 chromatic It does.
00:08 * purl stays quiet
00:08 chromatic It contains pointers to *register* locations.
00:08 jonathan Erm.
00:09 jonathan It doesn't contain the actual PMCs?
00:09 chromatic For incoming parameters, it does.
00:09 chromatic We copy them out of contexts into CallSigs to copy into contexts.
00:09 jonathan No, we copy *pointers to them* into...
00:09 dukeleto darbelo: are you proposing deleting those langs or just marking them as 'abandoned' on the wiki
00:10 chromatic For return parameters, we create pointers to the destination registers, store that in the CallSig, and then fill in those pointers.
00:10 jonathan chromatic: OK, but that's more out of allison's feeling that we must not break PASM compatibility rather than our actual ability to deal with that.
00:10 jonathan And something we can change within a deprecation cycle, iiuc.
00:11 darbelo dukeleto: Moving them into another page (or another table on the same page), so that we can more easily look at the active languages.
00:11 jonathan Or am I missing something?
00:11 chromatic I think we can all agree that the current design copies too many things and moves too much memory around.
00:11 jonathan (That is, we only create pointers to the destination registers because at the moment set_results comes first.)
00:12 chromatic I may be the only one saying that variable-sized register sets was a mistake.
00:12 jonathan Maybe. :-)
00:13 jonathan I guess what I'm kinda curious about is why CallSignature contains pointers to the actual PMCs - which obviously change per call - rather than register numbers.
00:13 chromatic Ideally, to invoke a sub, we create a continuation, fill in that continuation's registers with the arguments, and invoke the sub.
00:13 jonathan Which don't.
00:13 jonathan And then have the PMC have a positional interface that fetches them.
00:13 chromatic The sub rearranges its parameters as it sees fit.
00:14 chromatic Okay, but here's my question about that.
00:14 jonathan But guts can deal with going straight for the registers and copying to toher registers.
00:14 darbelo dukeleto: If somebody ask me "What languages can I run on parrot" I'd like to point them at that page.
00:14 chromatic Why do we need to have a PMC-based interface to get/set registers?
00:14 jonathan Of course, then your dealings with flattening thingies get fun.
00:14 dukeleto darbelo: ok, that sounds good. perhaps just make another table below the current one with abandoned langs?
00:15 darbelo dukeleto: Works for me. So nice of you to volunteer!
00:15 jonathan chromatic: I can only guess, because it's felt that is the best way to have and pass around a way of describing the argumetns to a call independent of how the call was made.
00:15 * darbelo was joking.
00:15 jonathan chromatic: And providing a common way to access them.
00:15 chromatic I think the problem is this.
00:16 darbelo I'll do it as soon as I find out what the heck is wrong with this bloody makefile.
00:16 jonathan chromatic: I'm not entirely sure having that interface available is a bad thing.
00:16 chromatic We need to be able to describe the signature at the caller point and the callee point.
00:16 chromatic Occasionally (MMD) we need to find compatible signatures and convert between them.
00:17 chromatic The current code appears to want to perform that comparison before invoking a callee.
00:17 jonathan No, not occasionally. Every single Perl 6 operator invocation is MMD.
00:17 chromatic Not every PIR call a Rakudo program makes uses MMD.
00:17 chromatic Not every PIR call an arbitrary program running on Parrot uses MMD.
00:17 jonathan Of course, but a substantial number of them are.
00:18 chromatic If I'm restating the "our get/set params opcodes appear in the wrong order in bytecode until January" argument, then that's fine.
00:18 jonathan chromatic: Well, I think that we can feel how we want on that, but a decision is made on it.
00:19 chromatic Sure, we have a deprecation policy and I think that's reasonable.
00:20 jonathan Sure, I'm just saying it's not really an argument worth having.
00:20 chromatic Of how to redesign the system for efficiency?
00:20 chromatic I'm not arguing against the deprecation policy.
00:21 jonathan Ah, I meant arguging about the get/set params opcode ordering. :-)
00:21 jonathan How to be efficeint is of interest. :-)
00:21 chromatic That's my concern: efficiency.
00:22 jonathan What I'm trying to say is that, as far as I understand it, the pointers-to-registers-for-returns thing is a short-term thing to avoid breaking deprecation policy, that's all.
00:22 chromatic Sure, that's fine.
00:22 jonathan So that particular concern has a timeframe for being dealt with.
00:22 chromatic I think I can get rid of that.
00:23 jonathan We can perhaps even get rid of it now, if we define a new "get_returns" op that IMCC starts emitting for sugared calls.
00:23 chromatic I think the unification of CallSig and Context is important, ultimately though.
00:23 chromatic Sugared how?
00:23 jonathan x = 'foo'(y, z)
00:24 jonathan Can we compile that to whichever ops we want without breaking depercation policy?
00:24 jonathan So long as folks writing PASM can also write the alternate ordering through January?
00:24 chromatic It's a change to IMCC, which is doable.
00:24 chromatic Probably doable.
00:24 jonathan I'm not sure how feasible maintaining two approaches is.
00:25 jonathan You'd know far better than I.
00:25 chromatic I don't know if the PASM/PIR approaches are different in terms of code.
00:26 jonathan Sure, but supporting set_returns called before the call creating a CallSignature with pointers that then set registers, and get_returns bidning against a returning call signature instead (so we make both work for a while...)
00:26 pmichaud (MMD)  one of the impedance mismatches between what Parrot provides and what Perl 6 / Rakudo needs is the fact that nearly all of Rakudo's operations are MMD based
00:26 pmichaud so most of parrot's claimed gains for doing things with registers and opcodes disappears in the need to be able to do mmd dispatch
00:27 chromatic I don't necessarily see how.
00:28 mikehh joined #parrot
00:28 jonathan chromatic: $a + $b in Rakudo compiles down to 'infix:+'($a, $b)
00:28 jonathan Well, the registers containing $a and $b
00:28 chromatic We have to find the appropriate candidate and may have to convert some registers through boxing/unboxing.
00:29 jonathan Right.
00:29 chromatic Is there anything else that penalizes registers?
00:29 pmichaud sure.  But if people are expecting $a + $b in Perl 6 to compile down to an 'add' opcode in Parrot, it's not happening.
00:29 jonathan But note that we find the appropriate candidate and *then* invoke it.
00:30 jonathan Actually the thing is that the add opcode in Parrot probably then may well go and do a second multi-dispatch.
00:30 chromatic I agree with both, but I'm not sure what implications I'm supposed to see here.
00:30 nopaste "Whiteknight" at 69.249.176.251 pasted "general approach for fixing tailcalls" (101 lines) at http://nopaste.snit.ch/18352
00:30 jonathan Even though Rakudo already knows it has two Ints.
00:30 pmichaud I'm not necessarily making a point, just bringing up another observation.
00:31 pmichaud Many of the things that we think of as promoting efficiency (e.g., int registers) end up being terribly inefficient for rakudo.
00:31 pmichaud for example, consider   $a + 1
00:31 pmichaud we can compile this down to
00:31 pmichaud 'infix:+'($a, 1)
00:31 pmichaud or
00:31 pmichaud $P0 = box 1
00:31 pmichaud 'infix:+'($a, $P0)
00:32 pmichaud it turns out the latter is more efficient.
00:32 chromatic It shouldn't be, but I agree.
00:32 pmichaud especially if $a + 1 is in a loop, and we move the constant generation out of the loop.
00:32 pmichaud so the claimed advantage of integer constants and integer registers kinda disappears.
00:32 pmichaud s/claimed/widely believed/
00:33 pmichaud so, one of the things that PAST will be getting is the ability to have constants created as soon as a sub is entered instead of at the point where they're used.
00:34 pmichaud (thus moving constant generation out of loops)
00:34 jonathan The only way we can really ever emit "add $I0, $I1, $I2" style stuff is when we (a) determinted from type inference or annotations that everything is an int, (b) know we've no operator overloads that may have effect on this have been made and (c) know that we don't have any lookups of the lexicals by name so we were able to promote them to registers.
00:34 pmichaud anyway, I don't have a strong point to make here, other than the observation that the naive expectations about calling efficiency seem to not apply
00:34 jonathan That's quite a lot of analysis.
00:35 pmichaud ....and that the integers don't become bigints.
00:35 chromatic I'm not making any claims about the advantage of primitive registers over PMC registers.
00:35 jonathan pmichaud: no, that's one thing we *don't* have to worry about here. :-)
00:35 jonathan pmichaud: lowercase int is spec'd as "CPU register int"
00:35 jonathan For Int, though, yes, for sure that's also an issue.
00:36 Whiteknight the types of the registers don't matter, what matters is reducing the number of copies betweehn them
00:36 pmichaud anyway, I'll depart now (dinner).  Sorry if I derailed a conversation.
00:36 chromatic Exactly.  If managing *all* kinds of registers is inefficient, it doesn't matter if you use primitives or PMCs.
00:37 pmichaud I guess I just wanted to confirm jonathan's comment that MMD is far more common than "occasional", at least for Rakudo.
00:37 chromatic Okay, but if managing *all* kinds of registers is inefficient, it doesn't matter if you use MMD or not.
00:38 Whiteknight so instead of copying args from the CallSignature to the Context, we dump them into a unified PMC and simply update the mapping for params
00:39 mikehh joined #parrot
00:39 chromatic It's not quite that simple.  I think we also have to perform some conversions in place when there's no exact MMD match.
00:39 Whiteknight This is true, but we can do the conversions en passant
00:39 jonathan Anyway, it's laaate here. I need sleep.
00:39 Whiteknight goodnight jonathan
00:39 chromatic Yeah, I think en passant callee-side conversions make more sense.
00:40 Whiteknight exactly
00:40 chromatic The MultiSub invoke is even a convenient place to do so.
00:40 chromatic Or a special get_params op for multis... or something.
00:41 Whiteknight when doing MMD, we only really need to compare tuples anyway. Once we find the proper signature, we can do ops conversions lazily
00:41 chromatic Right.
00:42 Whiteknight purl msg allison can you take a look at http://nopaste.snit.ch/18352 ? It doesn't work, but something like this should solve some of our tailcall problems, I think
00:42 purl Message for allison stored.
00:43 Whiteknight The only thing I worry about is Rakudo
00:43 Whiteknight their behavior of passing control to the next multi variant means they need to store a raw form of passed args
00:44 chromatic They do have their own PMCs for this though.
00:45 Whiteknight this is true
00:45 Whiteknight some of the Perl6 semantics are so complex and involved, it's hard to really support them at any level
00:45 Whiteknight especially if we want to offer equal support to any other languages
00:46 Whiteknight not that it's a bad thing, the p6 spec is rediculously ambitious
00:47 rhr joined #parrot
00:47 Austin WhiteKnight: That's why perl6 programs will always have filenames ending in .pl6
00:48 Austin Or plvi
00:48 dalek parrot-plumage: 7726562 | leto++ | :
00:48 dalek parrot-plumage: [t] Add some tests for path_exists()
00:48 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/7726562f4864cc5d503bc91e9aa480edf525404d
00:48 shorten dalek's url is at http://xrl.us/bfsm42
00:48 Whiteknight Austin: and why all Perl6 programs are at least O(n^4)
00:48 Austin :)
00:48 Austin (It's funnier if you've ever worked in PL/I, natch...)
00:48 Whiteknight the first "Killer App" written in P6 will be skynet
00:48 integral joined #parrot
00:48 Whiteknight and it will actually kill
00:49 Whiteknight I've seen PL/I, never had the misfortune of programming in it
00:49 Austin It was fine to program in. Very smooth. But the compiler required N**2 passes, where N was the number of tokens in the input. :(
00:50 kid51 joined #parrot
00:50 Austin Turns out that most programs could eventually be rendered down into like 6 or 7 opcodes. Those mainframe guys had opcodes for everything.
00:51 Whiteknight a tradition that Parrot tries to continue
00:51 Austin "Ohhhh! You want to normalize by using the 1970-adjusted price of grain futures in *brazil*? Why didn't you say so in the first place. You need to put 'E9 4B' right there, in front of that call."
00:53 Whiteknight well, price of grain futures in brazil is a standard metric in computer science
00:53 Whiteknight so that's fortuitous
00:54 chromatic It's a Hamilton number, right?
00:58 Austin What's a Hamilton number?
00:58 Austin err.
00:58 Austin What *is* a Hamilton number?
00:58 dalek decnum-dynpmcs: r188 | darbelo++ | trunk/ (8 files):
00:58 dalek decnum-dynpmcs: Convert our build to single-makefile, all build products now go into
00:58 dalek decnum-dynpmcs: $(STAGING_DIR).
00:58 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=188
01:00 Austin Grr.
01:00 Austin I'm never sure if I love the fact that NQP always returns the last expression evaluated as a result of a block, or if I hate the fact that NQP always returns the last expression evaluated as the result of a block.
01:02 Whiteknight yeah, that's a perl-ism that I never liked
01:03 Whiteknight I've run into problems before in C with lousy old compilers where a statement would put a value in EAX, and the caller wouldn't preserve EAX because the function call was supposed to return a void
01:03 Austin Apropos of nothing, I bought these "window sealing kits" at a store this spring, and today I got a little cold in my office (I still haven't turned on the heat) so I figured that I'd try sealing my office window, to see if it made a difference.
01:03 Austin (My office is a 3rd bedroom, and the window in question is a "slider".)
01:03 Whiteknight let me tell you how great it is to debug THOSE kinds of errors
01:04 Austin Boy, oh boy, did it make a difference. In the 40 or so minutes I fought with the plastic sealer, the temperature went up by 7 degrees Fahrenheit.
01:05 Whiteknight Austin: once you got it onto the window, did it work?
01:05 Austin I haven't even done the "heat-shrink" thing yet. Mostly because I don't have a hair dryer.
01:05 chromatic Why don't you have a ... oh, right.
01:08 dukeleto darbelo: what is the difference between 'abandoned' and 'retired' ? (defined at the bottom of the wiki page)
01:11 dukeleto msg japhb should I attempt to load src/plumage.pbc to test individual functions or should things get moved into Glue.pir? i am thinking specifically about find_program()
01:11 purl Message for japhb stored.
01:28 cotto_work chromatic++ for taking pizza out of someone else's fridge
01:29 chromatic Turns out I had pizza in my own fridge too.  I was surprised.
01:29 dalek TT #1102 reopened by jkeenan++: test failures with t/compilers/imcc/syn/macro.t and regressions.t in fast, ...
01:29 Whiteknight what's more surprising is that they ended up being the same fridge because GE didn't lexically scope them
01:30 chromatic I hope my cupcakes are still present.
01:33 chromatic If I get a vote, can we set TT #1102 on fire?
01:35 * cotto_work goes off to add a new "on fire" ticket resolution.
01:35 cotto_work or maybe it should be a status.
01:36 Austin Why this animus towards TT?
01:43 japhb dukeleto: Hmmm.  Why don't we create a src/lib/Util.nqp, and compile it down to pbc during make?  Then utility functions written in NQP can be moved there.  The long term goal is to move the model and controller parts of plumage.nqp out to one or more libraries, so we can change UIs at easily, or do programmatic inspection.
01:46 dukeleto japhb: and make it easier to test ;)
01:46 dukeleto chromatic: what does a burning ticket mean?
01:48 japhb dukeleto, yes, that had crossed my mind.  ;-)
01:50 * kid51 unpacks a box that just arrived and finds ... Parrot Developer's Guide: PIR
01:51 dukeleto japhb: i am on that now
01:51 dukeleto kid51: can you take a pic? where do I order one?
01:52 kid51 amazon
01:53 JimmyZ joined #parrot
01:54 * kid51 is startled to see he gets a mention in the "Parrot team" section of the endpaper
01:54 rhr joined #parrot
01:54 solarion interesting
02:02 dukeleto kid51: how many pages?
02:02 dalek joined #parrot
02:02 dukeleto kid51: 118
02:02 * dukeleto has to learn to scroll down
02:02 kid51 v + 113 = 118
02:03 kid51 Granted, I could have read it online ...
02:03 kid51 ... but that's just so 21st century!
02:04 dukeleto kid51: does anybody know which svn rev the printed book roughly corresponds to?
02:04 kid51 Somebody does ...
02:04 dukeleto kid51: or in other words, how old is the dead tree version?
02:04 kid51 ... but I'm not that body
02:05 kid51 well, whiteknight and allison are the lead authors, so I presume they know.
02:05 kid51 And they probably posted on channel at the point the book went to press.
02:06 kid51 And then there's this Shane Warden guy who was the editor. I'll bet he'll know.
02:06 dukeleto japhb: nqp --target=pbc -o src/lib/Util.pbc src/lib/Util.nqp
02:06 dukeleto "pbc" => PMC 'Eval' { ... }
02:06 dukeleto japhb: how do I turn .nqp into .pbc ?
02:06 abqar joined #parrot
02:06 dukeleto japhb: also, i have nqp aliased to parrot_nqp
02:06 Austin parrot_nqp
02:06 purl rumour has it parrot_nqp is just the name of the fakecutable binary
02:07 dukeleto purl: that might actually be useful
02:07 purl dukeleto: what?
02:07 dukeleto purl, be useful is i try my best
02:07 purl ...but be useful is <action>whirrs and clicks in the background....
02:07 dukeleto purl, be useful is also i try my best
02:07 purl okay, dukeleto.
02:07 dukeleto purl: be useful
02:07 * purl whirrs and clicks in the background. or i try dukeleto's best
02:07 * dukeleto facepalms
02:08 kid51 purl, good bot
02:08 purl thanks kid51 :)
02:08 Austin or 2 /usr/local/bin/parrot /usr/local/lib/parrot/1.6.0-​devel/languages/nqp/nqp.pir --target=pir --output=foo.pbc foo.nqp
02:09 Austin For some value of /usr/local
02:10 chromatic The book roughly corresponds to 1.6.
02:11 chromatic PIR hasn't changed much since then though.
02:11 Austin There's a good question: Is pcc_reapply coming in 1.7?
02:12 chromatic No.
02:12 Austin <whew>!
02:12 Austin Taxes won't be too bad this month, then.
02:22 rhr joined #parrot
02:33 japhb dukeleto, see Makefile.in.
02:33 japhb It's a multistage process
02:33 japhb And current parrot 'install-dev' (and maybe 'install', I dunno) creates a parrot_nqp fakecutable and installs it, so no need for an alias anymore.  ;-)
02:34 japhb Basically, do the same thing as plumage.nqp, but stop before you create the fakecutable.
02:34 * japhb disappears again to do the weekly trash/recycling/yard waste run
02:35 petdance joined #parrot
02:35 janus joined #parrot
02:44 dukeleto msg japhb i alias nqp=parrot_nqp, just 'cause I am lazy :)
02:44 purl Message for japhb stored.
02:45 dukeleto japhb: i see the multi-staged-ness now. i should have it working soon...
02:49 dukeleto one could write a treatise on effective laziness based on my .bashrc alone
02:53 Tene dukeleto: I alias n=parrot-nqp, p=parrot, r=perl6
02:54 Tene r{pir,past,parse}='perl6 --target=foo'
02:54 Tene lots more
02:55 Tene cdp='cd ~/src/parrot/'
02:57 nopaste "dukeleto" at 69.64.235.54 pasted "can you tell that I work in deep directory hierarchies at $work?" (8 lines) at http://nopaste.snit.ch/18353
02:57 dukeleto Tene: do you have yours under version control?
02:58 dukeleto Tene: http://github.com/leto/Util/tree/master/config
02:59 japhb dukeleto, an early "advanced shell" for DOS and Windows magically converted N+1 dots to "go up N levels".  So you could 'cd .....'
02:59 dukeleto Tene:  i like the target aliases, i should add those
02:59 dukeleto japhb: that sounds like a create feature
02:59 dukeleto japhb: perhaps the zsh folks will do something like that
03:00 chromatic I like pushd/popd.
03:00 japhb alias dirv='dirs -v' # The way it should have been, dammit
03:01 japhb chromatic, extra points if you do 'pushd -0' on a regular basis.  :-)
03:02 Austin Speaking of shell programming, some guy on reddit (!) just posted a "high precision status bar" for bash.
03:02 Austin Apparently reddit is now the cool place to show off your warez.
03:03 Austin Unicode U+2580..F is your friend, provided you have the right fonts.
03:03 dukeleto Austin: i avoid reddit and digg like swine flu
03:03 Austin :)
03:03 Austin Swine flu is the new celebrity fashion disease, dukeleto. Aren't you keeping up on TMZ?
03:04 japhb Austin, url?
03:04 Austin http://www.reddit.com/r/programming/comment​s/9qn0j/highprecision_progress_bar_in_bash/
03:04 shorten Austin's url is at http://xrl.us/bfqec4
03:06 Austin Or did you mean? : http://www.tmz.com/2009/09/24/swi​ne-flu-all-the-rage-in-hollywood/
03:06 shorten Austin's url is at http://xrl.us/bfsnsx
03:06 japhb OMG MY EYEZ
03:08 Austin japhb: One of the shells, probably bash, has or had a "CDPATH" variable, where you could put alternative places to cd. Maybe you should just set CDPATH = ".:..:../..:../../..:"  ...etc
03:09 dalek parrot-plumage: 144bc0d | leto++ | :
03:09 dalek parrot-plumage: [util] Refactor utility functions of plumage.nqp into src/lib/Util.nqp
03:09 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/144bc0dbeb075b9b600e927c4a29575c3c90a2b6
03:09 shorten dalek's url is at http://xrl.us/bfsns5
03:16 davidfetter joined #parrot
03:37 plobsing joined #parrot
04:07 abqar_ joined #parrot
04:22 mikehh joined #parrot
04:30 mikehh joined #parrot
05:02 dalek TT #1114 created by mgrimes++: [patch] Converted some tests from perl to pir
05:07 kyle_l5l joined #parrot
05:37 desertm4x joined #parrot
05:47 uniejo joined #parrot
05:58 he_ joined #parrot
06:03 dalek decnum-dynpmcs: r189 | darbelo++ | trunk/Configure.pir:
06:03 dalek decnum-dynpmcs: Give Configure.pir a --help option and make it verbose to let the user know
06:03 dalek decnum-dynpmcs: what's going on.
06:03 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=189
06:23 theory joined #parrot
06:27 chromatic msg whiteknight http://factor-language.blogspot.com/2009/1​0/improved-write-barriers-in-factors.html
06:27 purl Message for whiteknight stored.
06:27 shorten chromatic's url is at http://xrl.us/bfsocv
06:34 JimmyZ whiteknight?
06:34 purl whiteknight is mailto:wknight8111@gmail.com or the grand master funk or http://wknight8111.blogspot.com/
06:36 kyle_l5l is there a way to see what a program in PIR looks like after being compiled to pasm?
06:37 chromatic ./parrot fun.pir -o fun.pasm
06:40 UltraDM joined #parrot
06:40 kyle_l5l does set_args take any arguments? (I'm not seeing any in the pasm)
06:41 chromatic It has a constant PMC stored in the bytecode representing the signature.  I believe it's a FixedIntegerArray.
06:50 iblechbot joined #parrot
06:54 fperrad joined #parrot
06:59 kyle_l5l but it does look like set_args takes some arguments.  yeah, parrot's pasm output leaves out all arguments for set_args, get_results, etc (and thus the pasm output can't be run)
07:00 chromatic There are a couple of notes in IMCC that it doesn't dump all of PIR appropriately.
07:00 chromatic The pbc_dump utility may be more useful.
07:01 kyle_l5l alright
07:24 donaldh joined #parrot
07:40 mikehh joined #parrot
07:48 GeJ joined #parrot
07:50 masak joined #parrot
07:55 bacek joined #parrot
07:55 bacek o hai
07:56 mikehh_ joined #parrot
08:01 mikehh joined #parrot
08:09 dalek parrot: r41885 | fperrad++ | trunk/tools/install/smoke.pl:
08:09 dalek parrot: [install] since r41417 , NQP is installed as an executable parrot_nqp
08:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41885/
08:11 * mikehh should have reported this a few ago but fell asleep
08:12 mikehh trunk - pre/post-config, smoke (#29064) PASS, fulltest FAIL at r4184 (see TT #1102) - Ubuntu 9.10 (beta) amd64
08:12 mikehh fulltest - testf and testg now PASS but testS still FAILs
08:12 mikehh t/compilers/imcc/syn/macro.t - Failed tests:  2-4
08:12 mikehh t/compilers/imcc/syn/regressions.t - Failed test:  7
08:12 mikehh all other tests in fulltest PASS
08:12 mikehh that's r41864
08:13 uniejo joined #parrot
08:25 bacek mikehh: you can fix regexes in failing tests. It's just adding |0 into it.
08:27 bacek mikehh: just after |-1
08:32 mikehh bacek: will have a look in a bit - got to go to get some stuff from Macdonalds - bbiab
08:43 mokurai left #parrot
09:06 AndyA joined #parrot
09:25 AndyA joined #parrot
10:10 dalek parrot: r41886 | mikehh++ | trunk/t/compilers/imcc/syn (2 files):
10:10 dalek parrot: fix failing tests in testS for macro line numbering
10:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41886/
10:16 mikehh messages
10:19 petdance joined #parrot
10:43 mikehh All tests PASS (pre/post-config, smoke (#29075), fulltest) at r41886 - Ubuntu 9.10 (beta) amd64
10:57 jsut_ joined #parrot
11:08 cconstantine joined #parrot
11:41 einstein joined #parrot
12:02 JimmyZ joined #parrot
12:06 whiteknight joined #parrot
12:08 whiteknight good morning #parrot
12:10 payload joined #parrot
12:10 JimmyZ good morning, whiteknight .
12:14 whiteknight hello JimmyZ, how are you today?
12:14 Coke chromatic, kyle_l5l : I thought that foo.pir -o foo.pasm has been broken for like 6 years.
12:14 Coke s/broken/not intended to work/
12:19 JimmyZ whiteknight: Fine, thanks. I just visited your blog, there are many good articles talking about Parrot.
12:21 JimmyZ whiteknight: That's helpful for newcommer.
12:21 whiteknight thanks! I try to provide lots of information
12:21 whiteknight I feel like it helps people get involved
12:22 dalek TT #1102 closed by jkeenan++: test failures with t/compilers/imcc/syn/macro.t and regressions.t in fast, ...
12:24 JimmyZ whiteknight: yes, I think It can be moved to trac.parrot.org or parrot.org for who wants to get involved. BTW, blogspot is forbidden by Chinese Great Firewall. I used proxy.
12:25 whiteknight really? I didn't know it was blocked
12:26 JimmyZ whiteknight: many sites such as facebook, twitter also are blocked by it.
12:26 whiteknight I guess that doesn't surprise me though
12:28 dalek TT #1102 reopened by coke++: test failures with t/compilers/imcc/syn/macro.t and regressions.t in fast, ...
12:30 * Coke reopens 1102! whee!
12:31 JimmyZ whiteknight: It really take me several months to find a useable proxy to visit your blog.
12:31 bluescreen joined #parrot
12:31 desertm4x joined #parrot
12:32 nopaste "dukeleto" at 69.64.235.54 pasted "fib.pir benchmarked across released versions of parrot, trunk@r41884, pcc_reapply@r41884" (15 lines) at http://nopaste.snit.ch/18355
12:33 dukeleto msg chromatic http://nopaste.snit.ch/18355 is a bitter pill to swallow. let me know what I can do to help
12:33 purl Message for chromatic stored.
12:33 dukeleto 'ello
12:34 whiteknight we know there's a factor of two slowdown in branch
12:34 whiteknight there are lots of critical path optimizations needed stil
12:37 dukeleto whiteknight: yes, but fib.pir has gotten slower since 0.9.0 by a factor of ~2 as well. so when we merge pcc_reapply in, that is a ~4x slowdown in fib.pir since 0.9.0
12:38 whiteknight we've been doing a lot of refactoring on various systems to make them cleaner, but haven't followed with an equal amount of optimizations
12:38 whiteknight obviously it's something we need to look at across the board
12:39 dukeleto whiteknight: that is very understandable. i am interested to see what chromatic has to say about those benchmark numbers.
12:39 whiteknight yeah
12:39 whiteknight we know the context refactors slowed things down
12:42 Coke newsflash: parrot is still slow.
12:43 JimmyZ newsflash: parrot will be faster.
12:44 Coke I obviously hold out hope for that or would have left 8 years ago. =-)
12:44 masak even abandoning the project is slow, in other words. :)
12:44 Coke I'm going as fast as I can. =-)
12:45 masak heh :)
12:48 dukeleto Coke: i wouldn't even go that far. This is the first benchmark that I have found that has gotten consistently slower thoroughout time (although I am sure there are more), for the most part, parrot has started to really fly
12:49 Coke dukeleto: It seems to do fine at hand crafted pir examples vs. perl5
12:49 Coke I have yet to see any compelling HLL timings.
12:50 dukeleto Coke: oh yes. parrot kicks perl 5 in benchmarks these days. HLLs are a different story
12:50 Coke yes. and what is the expected usage of parrot? =-)
12:50 Coke for me? HLLs.
12:50 Coke so, parrot, being used as I expect it is intended to be used, is still slow.
12:50 dukeleto Coke: i think we are still in the stage of giving HLLs features, and not quite in the stage of optimizing for HLLs
12:51 dukeleto Coke: yes, for an HLL, parrot is slow
12:52 Coke dukeleto: Agreed on both counts (slow for HLLs, still missing features)
12:53 Coke so, I cringe whenever I see "parrot is fast(er)!". =-)
12:54 Coke (even to run the tcl program 'exit', partcl takes .675s while tcl8.5 takes 0.005s, e.g.)
12:55 JimmyZ :(
13:04 dukeleto Coke: chromatic needs to work on his mitosis. with a half dozen chromatics, i think parrot would get faster at a much faster rate :)
13:05 dukeleto i am learning a lot about valgrind and cachegrind, so hopefully I become useful in that area soon as well
13:06 payload joined #parrot
13:07 whiteknight Once we get the last few failing tests fixed, more people will be able to do more optimization work
13:08 whiteknight I don't want to focus on optimizations myself until they're fixed, anyway
13:11 JimmyZ promising
13:11 purl promising is, like, a term for developing stuff..  >:  [
13:43 whiteknight I definitely want to pay more attention to what kinds of optimization ideas chromatic and bacek are coming up with
13:49 dukeleto whiteknight: yes, i am not advocating optimization being done on pcc_reapply until all tests are passing. just want to quantify what the slowdown will be and prepare us all for it
13:50 dalek parrot: r41887 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
13:50 dalek parrot: [pct]:  Use explicit Undef check for parseactions instead of get_bool.
13:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41887/
13:50 whiteknight yeah, it's going to be quite the experience
13:51 dukeleto whiteknight: those rakudo guys, they might beat us up :)
13:51 payload joined #parrot
13:51 whiteknight fixing the NCI frame builder will cut 30% off startup time I think
13:51 whiteknight a proper generational GC will give us between 2%-30% depending on workload
13:52 Coke has anyone done any profiling against partcl to see what sort of improvements are to be gained there?
13:52 whiteknight I think we can easily get back 20% at least by being smarter in handling contexts
13:52 whiteknight Coke: none that I know of
13:56 * jonathan plans to run the profiler against Rakudo in the not too distant future.
13:56 jonathan And work out what's costing us (besides signature binding, which I'm in the process of dealing with at the moment.)
13:56 whiteknight profiling these things will be a very good thing, although I have a good idea about where a lot of slowdowns are
13:57 whiteknight chromatic I'm sure knows better
14:01 jonathan whiteknight: I'm not entirely sure where Rakudo's worst runtime ones are outside of the sig binding.
14:01 jonathan So I'll be interested to see the results.
14:05 whiteknight Me too. I don't know enough about Rakudo to guess where your bottlenecks are going to be
14:06 whiteknight I have to suspect startup, parsing, and MMD are going to be huge
14:09 Psyche^ joined #parrot
14:11 jonathan whiteknight: Startup isn't great, but in the last week or two it's had 40% shaved off of it.
14:11 jonathan whiteknight: MMD is fairly efficient.
14:11 jonathan whiteknight: Parsing isn't, but there's a fix in the works for that.
14:12 jonathan If startup could lose another chunk off it, that'd be great though.
14:13 dalek parrot: r41888 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
14:13 dalek parrot: [pct]:  Explicitly allow protoobjects as parseactions in HLLCompiler.
14:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41888/
14:13 jonathan We run a bit over 400 or so test files, so saving about 0.4s on startup shaved me 3 minutes off a spectest run.
14:18 whiteknight jonathan: yeah, like I said I can only guess where slowdowns might be.
14:18 jonathan whiteknight: Not if you run the profiler. ;-)
14:18 whiteknight true,
14:27 JimmyZ joined #parrot
14:28 Coke git q: I have a bunch of old branches on github for partcl. how do I update them to match work done in origin/master?
14:28 Coke (what is the git-way of doing svn's merge changes from trunk)
14:31 Coke which gitk
14:32 whiteknight wouldn't it be something like git pull master?
14:35 Coke or git rebase.
14:35 purl rumour has it git rebase is cool
14:36 Coke (or git merge)
14:42 payload joined #parrot
14:43 Coke (ok. git checkout --track -b foo origin/foo; git merge master) . modulo a lot of conflicts.
14:45 pjcj joined #parrot
14:45 dalek partcl: 82b7665 | coke++ | docs/spectest_skips:
14:45 dalek partcl: Update spectests (slightly different results on new testing platform)
14:45 dalek partcl: review: http://github.com/partcl/partcl/commit/8​2b766573614fa6f971350d7c6ada0510b28b157
14:45 shorten dalek's url is at http://xrl.us/bfspmi
14:50 iblechbot joined #parrot
14:56 Coke if I do a merge from master into a branch, does it do the whole thing as a single commit?
14:57 dukeleto Coke: yes
14:57 Coke did I really want a rebase here?
14:57 dukeleto Coke: not sure, backlogging
14:57 Coke I have a very old branch; trying to bring it up to date with master.
14:57 dukeleto Coke: also, trackking is default now-a-days
14:58 mikehh joined #parrot
14:58 dukeleto Coke:  git checkout -b foo origin/foo make a local branch that tracks the one on github
14:58 dukeleto Coke: then I think you might want 'git rebase master' ?
14:58 dukeleto Coke: i think
14:59 dukeleto s/make/makes/
14:59 * dukeleto is still getting over being sick and is still making lots of dumb typos
14:59 Coke ok. how can I delete my local branch that tracks the origin branch?
14:59 Coke (so I can try this over.)
14:59 dukeleto Coke: git branch -d foo
15:00 dukeleto Coke: or git branch -D foo if you are sure :)
15:00 dukeleto Coke: -d only deletes it if it has been merged in. -D will delete any branch, regardless
15:00 dukeleto Coke: i tend to try -d first, then make sure to myself that I don't want it, then do -D
15:01 dukeleto Coke:  you can always get it back with git reflog, so it ain't that big a deal
15:02 dukeleto Coke: does this newer patch look reasonable to you? https://trac.parrot.org/parrot/ticket/1085 I am testing it now
15:03 Coke dukeleto: is that the tcl patch?
15:03 Coke it's pretty much entirely orthoganol to partcl. No opinion.
15:03 Coke so, if I rebase, have conflicts, after I locally edit, do I have to do a 'git add' for for the rebase --continue to work?
15:05 dukeleto Coke: yes
15:06 dukeleto Coke: yes, I know that Tcl is orthoganl to partcl, but I thought you might have more than my 0 tuits in that area. no worries
15:07 dukeleto Coke: git add is the same as 'svn resolved file' when you are fixing conflicts
15:07 dukeleto Coke: basically you are telling git to update the index with what the working copy is now
15:18 Coke if I do a rebase like this and then push back, what's going to happen? will I get N commit emails showing these commits played on the branch?
15:24 Coke .. if I do a git push, I get "everything up to date". huh?
15:24 Coke also, "not currently on any branch" . huh?
15:26 Coke (switch to branch. git push. everything up to date)
15:26 Coke I am very confused. :|
15:40 dukeleto Coke: hmm
15:40 dukeleto Coke: what does git status -a say?
15:43 Coke I've moved on. Just did the whole thing again, this time failing on git push;
15:43 Coke $ git push
15:43 Coke To git@github.com:partcl/partcl.git
15:43 Coke ! [rejected]        tclint -> tclint (non-fast forward)
15:43 Coke error: failed to push some refs to 'git@github.com:partcl/partcl.git'
15:46 dukeleto Coke: do a pull first
15:46 Coke dukeleto: AIGH
15:46 Coke now all my conflicts are back.
15:46 Coke the ones that I have now fixed ... what, 3 times?
15:46 Coke =-)
15:47 dukeleto Coke: if you don't care about what the remote branch is like write now, you can override it, and do a non-fast forward. do you want to do that?
15:47 dukeleto s/write/right/ # ug
15:48 Coke dukeleto: I have no idea what you mean.
15:48 dukeleto Coke: do a git reset --hard HEAD^ to get rid of the conflicts
15:48 Coke at this point, I'm probably just going to destroy the branch and recreate it because git sucks. =-)
15:48 dukeleto Coke: let me ask that question in normal-speak
15:49 dukeleto Coke: do you care about the state of the remote branch 'tclint' right now? do you want to rewrite its history?
15:50 Coke dukeleto: that's not entirely normal speak. =-)
15:51 Coke I would /like/ the branch to be rebased against master. I will settle for a merge. I am pondering just deleting the branch and, as allison does with svn, manually reapplying the bits in new commits to master.
15:51 dukeleto Coke: can we stomp on the remote branches face and just recreate it? is anyone else tracking that branch? can we pull the rug out from anyone that was?
15:51 Coke dukeleto: you overestimate the # of people looking at partcl. right now it's just me. =-)
15:51 cotto_work LLVM videos: http://llvm.org/devmtg/2009-10/
15:52 dukeleto Coke: then doing a git push --force will do what you want
15:52 Coke I do not like the sound of that.
15:52 Coke but I have no idea what it means. =-)
15:52 dukeleto Usually,  the  command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it. This flag disables the check. This can cause the remote repository to lose commits; use it with care.
15:53 dukeleto 'the command' refers to 'git push'
15:53 theory joined #parrot
15:53 dukeleto Coke: so obviously, you don't want to use --force willy-nilly, but for this situation, it is fine. it is kind of like deleting the remote branch and recreating it
15:53 dukeleto Coke: actually, you can do that instead.
15:54 dukeleto Coke: delete the remote branch, and then you won't have to use --force
15:54 Coke dukeleto: at this point, it seems simpler to me to delete and just start over completely.
15:55 dukeleto Coke: perhaps. you can always make a diff and apply that to master. perhaps a few hunks will get rejected, but that is the least amount of work right now
15:55 dukeleto Coke: it could be that you just have lots of actual conflicts between that branch and master.
15:57 dukeleto Coke: git merge-magic-pony is still in development ;)
15:57 Coke from elsewhere: "git-rebase I think has fairly strong warnings against doing it."
15:57 Coke true?
15:57 purl rumour has it true is not false
16:00 Coke darbelo: looks like your install-parrot branch doesn't have any actual commits on it, but does have an svn merge. easier to delete and recreate?
16:00 Coke msg darbelo looks like your install-parrot branch doesn't have any actual commits on it, but does have an svn merge. easier to delete and recreate?
16:00 purl Message for darbelo stored.
16:00 darbelo Coke: Probably.
16:01 Coke msg darbelo added you as a collaborator on partcl/partcl
16:01 purl Message for darbelo stored.
16:01 whiteknight purl forget true
16:01 purl whiteknight: I forgot true
16:01 Coke oh, hai.
16:01 whiteknight hi
16:01 darbelo hi
16:01 purl salut, darbelo.
16:01 Coke darbelo: feel free to delete that branch and recreate it. I suspect the remaining branches may suffer a similar fate.
16:02 darbelo I'll delete now, recreate later when I actually have some tuits to work on it.
16:04 Coke darbelo: +1
16:04 purl 1
16:04 Coke darbelo++
16:04 darbelo I get karma for punting stuff?
16:05 Coke darbelo++ #questioning authority
16:05 darbelo :)
16:05 cotto_work some days you get karma for existing
16:06 Coke cotto_work-- # smart-talk.
16:06 Coke karma cotto
16:06 purl cotto has karma of 956
16:06 Coke karma cotto_work
16:06 purl cotto_work has karma of 5
16:11 payload1 joined #parrot
16:14 Coke -> afk
16:16 whiteknight cotto_work++ # links to LLVM videos
16:17 whiteknight downloading several now
16:17 cotto_work whiteknight, which ones?
16:17 allison joined #parrot
16:18 whiteknight Unladen Swallow, the GC efficiency one, the action script one, spacial memory safety, and the ruby one
16:18 whiteknight those are the ones that I think, reading the descriptions, are most pertinent for Parrot
16:19 cotto_work possibly also the "building a backend" one.
16:19 * cotto_work is glad to have a fast Internet connection at his disposal for downloading said videos.
16:19 whiteknight I saw that. But I figure most of our conversions are going to be PBC -> LLVM, not the other way around
16:23 darbelo purl: msg Coke The install-partcl branch is gone. Hope you had a chance to say goodbye :)
16:23 purl Message for coke stored.
16:29 whiteknight The Rubinius guy says he's never seen any documentation or examples for using a JIT with a stackless VM
16:30 whiteknight I didn't expect it to be too difficult to do
16:36 dukeleto Coke: git rebase has many adherents and enemies. the best i can say is 'it depends'. 'Only rebase history no one else has seen or depends on' is my motto
16:37 cognominal joined #parrot
16:41 davidfetter joined #parrot
16:51 HG` joined #parrot
17:31 redbrain hey guys working on having a build bot for us on some sparc64 and mips i'll send a mail to the list when its up we should have an irc bot for it too
17:31 payload joined #parrot
17:32 cotto_work redbrain, great!
17:33 redbrain yeah there will be more but just work on 2 machines so far its not quite working yet but i'll fix it when i get some food :P
17:34 redbrain anyways i am heading on to get food be back online later :)
17:34 redbrain left #parrot
17:34 cotto_work nom
17:35 allison joined #parrot
17:37 cotto_work Coke, did you have any hashing library in mind when you added that comment to ItsABughunt?
17:38 Coke any of the ones that I found several years ago when I suggested it and did a google search? =-)
17:39 Coke (no, no one in particular.)
17:43 AndyA joined #parrot
17:43 cotto_work what advantages are you thinking of?
17:50 dalek parrot: r41889 | mikehh++ | trunk/t/compilers/imcc/syn (2 files):
17:50 dalek parrot: revert r41886 and mark failing tests in testS for macro line numbering as TODO
17:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41889/
17:52 HG` joined #parrot
18:01 Coke cotto_work: not reinventing the wheel.
18:01 purl not reinventing the wheel is nice too, but smolder is _so_ hard to install, it's insane
18:02 darbelo Coke: you'd need an Artistic 2.0 licensed wheel.
18:02 Coke darbelo: only if we include it in core.
18:02 Coke s/core/repo/
18:02 Coke we can depend on 3rd party libs without much problem.
18:03 cotto_work minimizing external dependencies is nice too, since any hll will depend on what parrot depends on
18:03 darbelo Except parrot needs to run on two gazillin platforms that might not have thar lib.
18:04 Coke darbelo: see also ICU.
18:04 rdice joined #parrot
18:04 cotto_work but that's a really hard wheel to reinvent
18:04 darbelo I can install without ICU. I can't install wothout hashes.
18:04 Coke at least 2 HLLs are completely dead without ICU.
18:04 * pmichaud wonders which 2 those are.
18:05 * Coke is overselling.
18:05 Coke doesn't rakudo currently require ICU?
18:05 darbelo rakudo and which other?
18:05 pmichaud for full functionality, yes.
18:05 Coke so, overselling.
18:05 Coke s/completely dead/not fully functional/ =-)
18:05 pmichaud but it isn't "completely dead" w/o it :)
18:05 Coke partcl.
18:05 darbelo Oh.
18:06 pmichaud the test files that rakudo can't pass w/o icu are listed in t/spectest.data with a "# icu" tag.
18:06 Coke anyway,  I'm saying someone should /evaluate/ a 3rd party library.
18:06 payload joined #parrot
18:07 pmichaud (15 test files out of 450, fwiw)
18:07 Coke this is true for a lot of code. (jit, nci, icu, bignums, ....)
18:08 pmichaud but yes, the point that Parrot relies on 3rd party non-bundled libraries is completely correct.  :)
18:08 Coke yes. I'd rather rely on 3rd party libraries.
18:09 pmichaud but then how would we make sure all of the wheels have been properly reinvented?  ;-)
18:09 darbelo I mostly agree with Coke here, butI think having some languages not work on, say OpenBSD/vax, is quite different from having the whole vm 'only work where library Foo does'
18:09 cognominal joined #parrot
18:10 pmichaud I think the number of platforms that we explicitly claim to support is fairly small (more)
18:10 Coke (small) and we don't even really support them.
18:10 Coke (OS X 10.4/intel, e.g.)
18:11 pmichaud so if there's a library that doesn't run on a platform where we need it, our efforts might be better put towards porting that library than reinventing it whole-cloth.
18:11 Coke pmichaud++ #I've been saying that for years. =-)
18:11 PerlJam pmichaud: no,no, let's be like netscape!  ;>
18:12 pmichaud what, and rewrite the whole thing in Java?  ;-)
18:13 darbelo pmichaud: The library might compile, hell even *work*, but parrot "Can't rely on it if nobody packages it."
18:13 pmichaud we can improve that too.
18:14 pmichaud packaging a library is often a lot less effort than writing one from scratch :)
18:14 pmichaud I'm just sayin', thazzall.  :)
18:16 ruoso joined #parrot
18:16 darbelo For one OS, yes. For *all* OSes parrot has to run in? Half of the supported platforms don't package *parrot*.
18:16 pmichaud see "small" above.
18:16 Coke darbelo: define "all oses parrot has to run in" ?
18:17 pmichaud I'd even like to see "half of the supported platforms"  :-)
18:17 PerlJam parrot has to run in an OS?
18:17 PerlJam :)
18:17 darbelo First approximation: The list of OSes I can tag a ticket with.
18:18 pmichaud PerlJam: no, I don't think we support EMACS yet.
18:19 pmichaud True value:  The Parrot team is committed to supporting the following combinations as
18:19 pmichaud "core platforms": Linux (x86), Win32 (x86), OS X (x86 and PPC), Cygwin, Tru64,
18:19 pmichaud OpenVMS (Alpha), FreeBSD (x86).
18:19 pmichaud I count seven.
18:19 pmichaud er, eight.
18:19 darbelo Packaged on: Some linux, Win32, macports, and ...
18:20 pmichaud I don't think we claim to support every packaging system for each one of those core platforms.
18:21 joeri joined #parrot
18:21 darbelo We don't package for Cygwin, Tru64, OpenVMS or FreeBSD
18:21 darbelo half.
18:22 PerlJam I  thought there was a cygwin package
18:22 pmichaud So, your claim is that we should create our own versions of libraries for platforms that we don't even have the manpower to build a package for...?  ;-)
18:22 darbelo The first page of google results for "parrot cygwin" shows 0.6.4
18:23 pmichaud s/manpower/resources/
18:23 darbelo pmichaud: No. I'm saying we need look again at the whole "running on toasters too" goal.
18:24 pmichaud is "running on toasters" (or its approximation) somewhere in our roadmap/timeline ?
18:24 pmichaud (out of curiosity)
18:25 jonathan .oO( pmichaud, our resident toaster expert :D )
18:25 pmichaud .oO( for that, I need to put the 'hcf' opcode back into Parrot :-)
18:25 darbelo There's noise every now and then about 'running everywhere perl does, and more!'
18:26 pmichaud Oh.  At PDS 2008 I think we decided to forego that particular goal for the time being.
18:26 pmichaud I'm not sure it was decided what "the time being" meant, though.
18:26 * darbelo was not at the PDS :(
18:26 whiteknight means "forever"
18:26 whiteknight speaking of PDS, weren't there talks to do a virtual one this year?
18:27 whiteknight I would really like to be able to have a dedicated planning meeting like that
18:27 pmichaud yes, there were.  I've heard no further details (but I've also been heads-down on regex stuff)
18:27 whiteknight I've been heads-down on pcc stuff, so I'm in the same boat
18:27 Coke darbelo: the package on macports is hideously out of date and hasn't worked for some time with trunk.
18:27 pmichaud there were talks to have a meeting; whether it's virtual or non-virtual hadn't been decided iirc.  But I'm fairly certain it'd be virtual, given resource limits.
18:28 whiteknight Coke: what does it take to make a macports package? Is that something that can be automated?
18:28 Coke whiteknight: i CANNOT INSTALL ON THAT PLATFORM.
18:28 darbelo I'll trade it for FreeBSD, I just found a port for 1.4 there.
18:28 pmichaud I think we'd really want to make sure the next meeting can involve direct participation from people who cannot travel.
18:28 Coke so, making the package is irrelevant, since I can't even run "make install"
18:29 Coke once make install works, the package is simple.
18:29 whiteknight Okay...so what needs to happen to fix that?
18:29 Coke whiteknight: if I knew, I'd fix it. tehre's a ticket open for some time now.
18:29 * whiteknight is not familiar with the plight of OSX
18:29 whiteknight if I had a Mac, or access to one, I would fix it
18:29 whiteknight pending that, SOL
18:30 darbelo whiteknight: We need to get more OSX experts.
18:30 Coke darbelo: ... more?
18:30 mikehh joined #parrot
18:30 * whiteknight starts drafting a blog post about it
18:30 Coke we don't really have any, I think. we have a bunch of developers who do casual development on osx.
18:30 darbelo Coke: Yes, a non-negative number of them.
18:31 darbelo That's more than we have now.
18:32 whiteknight If anybody has an old, spare mac that they'd be willing to send me, I'd fix it all
18:32 Coke darbelo: the english teacher in my head says that you can't say "more" in english if you have none to start with.
18:32 theory joined #parrot
18:32 Coke whiteknight: no. good luck getting any h/w from apple, either.
18:32 Coke I've given out dev accounts on my home desktop machine in the past to no avail.
18:32 whiteknight I have some mac-loving inlaws that I might be able to convince that they need to "upgrade"
18:32 whiteknight :)
18:33 * darbelo isn't a native english speaker.
18:33 Coke soon it won't matter for me either, as I hear 10.5 JFW.
18:33 Coke darbelo: just explaining why I picked on that particular word.
18:33 whiteknight JFWing is a major feature
18:35 whiteknight does apple do hardware donations and stuff to open-source groups?
18:35 whiteknight I hadn't even considered that path
18:35 Coke not SFAIK.
18:36 Coke ISTR that people on the board have asked.
18:36 Coke and we have an ex-parrot person at apple who I think has also told me no.
18:36 whiteknight okay, well I will continue not considering that path
18:36 darbelo Coke: That TT needs to go into the roadmap, marked with "BLOCKER" in big angry letters.
18:36 Coke (but that may just have been because he had no access.)
18:36 pmichaud I wonder if we could get a donation from one of our sponsors (or possibly a new sponsor)
18:36 pmichaud instead of trying to hit apple up directly.
18:36 Coke darbelo: yes, well, i can only open so many tickets that don't get responded to. =-)
18:36 whiteknight soliciting a donation would be quite hot
18:36 * whiteknight would love to set up a little build farm with a lot of test machines
18:37 Coke we just don't have anyone to work on OS X issues that isn't already swamped on other things.
18:37 pmichaud I suspect sponsors have old(er) machines they'd be willing to part with
18:37 pmichaud and we might be able to solicit a cash donation if we could say "it's going to be used for this specific purpose"
18:38 Coke I pretty much just gave up on OS X and am using feather or other donated boxes I have remote access to.
18:38 whiteknight okay, so how do we go about doing that? I'm not in charge of anything, so I don't know what the process would be
18:38 whiteknight Coke: What's the ticket number?
18:39 pmichaud another possibility might be to start asking various apple user groups for help
18:39 pmichaud could grow our developer pool.
18:40 darbelo (grow our developer pool)++
18:40 cotto_work developers developers developers
18:40 Coke whiteknight: 910 "macport/installing on OS X"
18:41 whiteknight what compiler are you using, gcc?
18:41 whiteknight for that matter, could you just post your entire config/build log?
18:44 Coke whiteknight: no, I'm busy ATM. please post questions on the ticket, I'll get to it when I can.
18:44 Coke (gcc) yes.
18:44 Coke it's pretty much the only game in town.
18:45 darbelo for now, at least.
18:45 Coke ?
18:45 whiteknight I wonder if you could try building with LLVM? I know Apple has been putting some energy into that lately
18:45 darbelo apple has been making noises about LLVM for a while.
18:45 Coke whiteknight: on 10.4 ? I highly doubt it.
18:47 Coke it's been reported (dukeleto?) that parrot installs just fine on 10.5 (10.6 is latest), so I may just be SOL.
18:47 Coke (in that we have no one with the time to make it work on my 2 year old OS.)
18:47 darbelo SOL?
18:47 purl SOL is Shit Outta Luck. or the sun or s/Shit/Straight/ or snicker out loud
18:48 darbelo ah
18:50 mikehh All tests PASS (pre/post-config, smoke (#29100), fulltest) at r41889 - Ubuntu 9.10 (beta) amd64
18:51 cotto_work cool.  the unladen swallow presentation mentions parrot
18:56 whiteknight really? I haven't watched that one yet
18:57 whiteknight I was in the middle of the VMKit one and got distracted
18:57 whiteknight I really would love to go to this one next year
18:59 cotto_work hopefully we'll even have something to talk about by then
19:01 mikehh joined #parrot
19:02 mokurai joined #parrot
19:06 cotto_work llvm?
19:06 purl llvm is a big huge thing with not much docs, but it works or low-level virtual machine or at http://www.llvm.org
19:06 cotto_work llvm is also not the cure for cancer
19:06 purl okay, cotto_work.
19:09 Ron joined #parrot
19:09 cotto_work possibly useful page describing python's bytecode instructions: http://www.python.org/doc/2.5.2/lib/bytecodes.html
19:18 chromatic joined #parrot
19:18 desertm4x joined #parrot
19:19 cotto_work chromatic, do the tagged pointers in CallSignature have the potential to mess up gc?
19:20 chromatic I can't imagine how.
19:20 chromatic They all get marked appropriately.
19:20 chromatic If the tagging didn't work, we wouldn't get to the point of asking "Is this a GC bug?"
19:21 chromatic Crazy thought for getting rid of CPointer: make a ResizablePointerArray.
19:21 cotto_work Ok.  I was just wondering if it'd be smart enough to deal with non-aligned addresses.
19:21 cotto_work apparently it is.
19:21 whiteknight I like the idea of resizable Pointer Array
19:22 whiteknight especially nice if we limit behavior for what CallSignature needs
19:22 chromatic The pointers should all be aligned; it only tags the storage pointers, not the INSP values themselves.
19:22 whiteknight Positional arguments seem to be accessible in order, so we can optimize for ordered access
19:23 cotto_work of course, but the gc looks for pointers, doesn't it?
19:23 chromatic If there's a platform that doesn't align pointers so that the bottom three bits are free, I don't know what it is.
19:23 chromatic We don't have a heap scanner looking for all heap-allocated pointers though.
19:23 whiteknight we really don't want a heap scanner either
19:24 mikehh joined #parrot
19:25 cotto_work ok.  I see where my thinking was off.
19:25 chromatic Hm, I wonder if putting const in the appropriate place for the pcc_get_funcs struct will prevent refetching of pointers that won't change.
19:25 chromatic Could help branch prediction.
19:26 dalek nqp-rx: 4741f3d | pmichaud++ | src/ (2 files):
19:26 dalek nqp-rx: Remove Regex::P6Regex::Grammar's dependency on PCT::Grammar.
19:26 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​741f3dd0cac547ccfe6759e5741b2b9c5023338
19:26 shorten dalek's url is at http://xrl.us/bfsq4u
19:26 dalek nqp-rx: 5d42e76 | pmichaud++ | src/Regex/P6Regex.pir:
19:26 dalek nqp-rx: Correct compiler class to be Regex::P6Regex::Compiler .
19:26 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​d42e76abb9cedc98fdb0200cda318e13f48f2fa
19:27 shorten dalek's url is at http://xrl.us/bfsq4w
19:27 dalek nqp-rx: 638b1b5 | pmichaud++ | src/ (4 files):
19:27 dalek nqp-rx: Add naive protoregexes (from PGE cheats) to Regex::Cursor for bootstrapping.
19:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​38b1b585360f5d85751835a0ba7d6b3d4c70857
19:27 shorten dalek's url is at http://xrl.us/bfsq4y
19:27 whiteknight that VMKit video has very interesting information about a proper precise GC
19:31 chromatic Where in fill_returns does it actually set the values in the CPointers?
19:32 Tene 'sec, I'll look
19:34 dukeleto Coke: can anyone else reproduce the error on 10.4 ?
19:35 Tene chromatic: most of the VTABLE_set calls in fill_results are assigning to the cpointers.
19:36 Tene chromatic: look for result_item =
19:36 Tene 1590 fetches the cpointer in the positionals loop
19:37 chromatic VTABLE_set_pmc(interp, result_item, ...);
19:37 chromatic and so forth?
19:38 Tene Yes.  The general strategy is to fetch the cpointer at the start of the loop, save it in result_item, and then later on, assign to result_item.
19:39 Tene I don't expect any problems with rewriting that into set_*_keyed_int
19:40 whiteknight I also didn't realize that GDB7.0 had better JIT support
19:40 chromatic Let me work up a pointer array then.
19:40 cotto_work That was nice to find out.
19:40 whiteknight yes, now I really need to get GDB7
19:40 whiteknight I wonder how long until it's included by the Ubuntu packagers
19:42 cotto_work too long
19:42 whiteknight true. that means I'll have to do the upgrade manually, which I hate
19:42 cotto_work however: http://blog.vinceliu.com/2009/09/how-​to-build-debian-package-for-gdb.html
19:43 shorten cotto_work's url is at http://xrl.us/bfsq7v
19:43 whiteknight I'll check that out later
19:43 whiteknight right now, I'm heading home
19:43 cotto_work it's pretty simple
19:43 cotto_work assuming you can build it
19:43 whiteknight true, and that might be a nightmare
19:44 KatrinaTheLamia joined #parrot
19:44 cotto_work For me it just required figuring out the dependencies.
19:54 allison joined #parrot
19:58 bluescreen joined #parrot
20:04 confound joined #parrot
20:06 pmichaud is there a way from PIR to disable garbage collection -- i.e., to have the same effect as setting -G on parrot's command line?
20:07 Tene Look at t/op/gc.t as a first step
20:07 Tene well, I'll look.
20:08 Tene nothing there
20:09 cotto_work gdb upgrade request for ubuntu as a bug report: https://bugs.launchpad.net/ub​untu/+source/gdb/+bug/446457
20:09 chromatic The sweepoff op.
20:09 pmichaud thanks.
20:11 pmichaud ...find_method returns an exception if a method isn't found?  icky.  Perhaps it should return PMCNULL like most of the other "not found" situations?
20:11 theory joined #parrot
20:13 chromatic Makes sense to me.
20:16 darbelo nopaste?
20:16 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
20:18 jonathan pmichaud: find_method the op, or find_method the vtable?
20:18 mikehh joined #parrot
20:19 nopaste "darbelo" at 200.49.154.173 pasted "Sample matrixy run for Whiteknight." (44 lines) at http://nopaste.snit.ch/18357
20:19 pmichaud find_method the op
20:19 jonathan pmichaud: ah, ok
20:19 jonathan I was gonna say, I'm pretty sure I've not seen a find_method vtable throwing...
20:19 pmichaud if find_method the vtable throws exceptions, that'd be Very Bad.
20:20 jonathan Yes, tell me about it...
20:20 purl i think it is about the ordering
20:20 jonathan purl: I think you are about retarded.
20:20 purl ...but purl is <reply> ♬ beat on the bot // beat on the bot // beat on the bot with a baseball bat// oh yeah ♬ or pretty stupid, aren't you or an annoying girl or a non-intuitive answering machine...
20:20 jonathan purl: forget it
20:20 purl jonathan: I forgot it
20:21 darbelo purl: msg Whiteknight With my last push to github you can configure, build and run matrixy against an installed parrot. see http://nopaste.snit.ch/18357
20:21 purl Message for whiteknight stored.
20:23 darbelo purl: msg Whiteknight It will only work with a recent trunk, as I'm using the parrot_nqp fakecutable in the makefile. I can easisly make it work with earlier parrots too.
20:23 purl Message for whiteknight stored.
20:23 cotto_work We don't care about earlier parrots.  We only look TO THE FUTURE.
20:24 darbelo cotto++
20:25 Coke dukeleto: I have no idea. I think I am pretty much teh only 10.4/intel person.
20:25 Tene cotto_future++
20:27 davidfetter joined #parrot
20:28 einstein joined #parrot
20:28 darbelo purl msg dukeleto Whiteknight's matrixy now builds and runs with an installed parrot, feel free to test the heck out of it ;)
20:28 purl Message for dukeleto stored.
20:29 dukeleto darbelo: shweet!
20:29 darbelo http://nopaste.snit.ch/18357 is about as far as I've tested it.
20:47 dalek nqp-rx: 4506dba | pmichaud++ | src/Regex/P6Regex.pir:
20:47 dalek nqp-rx: Add a custom parse method to Regex::P6Regex::Compiler that understands cursors.
20:47 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​506dba6853ff8a1a0a26a2d5b1820b3cab691bf
20:47 shorten dalek's url is at http://xrl.us/bfsrjt
20:47 dalek nqp-rx: c9a4f85 | pmichaud++ |  (2 files):
20:47 dalek nqp-rx: Clean up parse and !reduce methods.
20:47 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​9a4f85b93a943aa36589c26c3060f311b515793
20:47 shorten dalek's url is at http://xrl.us/bfsrjv
20:47 darbelo Infinoid: ping
20:48 desertm4x darbelo: I've just tested building matrixy and it worked without problems. :-) great job!
20:50 theory joined #parrot
20:50 darbelo Those were actually very minor changes, I didn't touch the code at all.
20:50 japhb darbelo: Is it now time for me to get off my butt and write the dependency handling for Plumage?
20:51 darbelo japhb: not yet, matrixy builds, but the library it'll depend on doesn't.
20:51 japhb OK.
20:52 japhb Any expected time frame for that?
20:52 darbelo Not today?
20:53 japhb *chuckle*
20:53 japhb OK, I guess it's not a huge rush then.
20:53 * japhb goes back to taking a chainsaw to his $day_job source tree
20:53 darbelo Whiteknight should be better qualified to answer that than I am.
20:53 japhb fair enough
20:58 jonathan rakudobug?
20:58 purl i heard rakudobug was mailto:rakudobug@perl.org
21:02 dukeleto msg whiteknight i've started using the issue tracker for matrixy: http://github.com/Whiteknig​ht/matrixy/issues/#issue/1
21:02 purl Message for whiteknight stored.
21:07 darbelo dukeleto: (issue 1) maybe I shuld stick to the old-style invocation?
21:21 theory joined #parrot
21:23 darbelo msg dukeleto fixed and closed your matrixy issue. It will now work with pre-1.7 parrots.
21:23 purl Message for dukeleto stored.
21:23 dukeleto darbelo: damn, you are quick!
21:26 darbelo Eh, it was an easy fix.
21:27 dalek nqp-rx: c381a19 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
21:27 dalek nqp-rx: Handle quantified aliases like $<var>=(subrule)* .
21:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​381a19306ec221d17cabb2da927ca8de0756b25
21:27 shorten dalek's url is at http://xrl.us/bfsrqt
21:27 dalek nqp-rx: 3095780 | pmichaud++ | src/Regex/Cursor.pir:
21:27 dalek nqp-rx: Fix Cursor.parse to return a Match object.
21:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​095780751b7a99a0aef864fca7bf8d904859986
21:27 shorten dalek's url is at http://xrl.us/bfsrqv
21:27 dalek nqp-rx: 7c2e928 | pmichaud++ | build/Makefile.in:
21:27 dalek nqp-rx: Temporary bootstrap helper target.
21:27 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​c2e9283687b77655758395859759b2076303ad8
21:27 shorten dalek's url is at http://xrl.us/bfsrqz
21:36 * cotto_work goes home early
21:36 darbelo yay!
21:50 dalek parrot: r41890 | pmichaud++ | trunk/compilers/pct/src/PCT/Node.pir:
21:50 dalek parrot: [pct]:  Generalize the types of nodes that PCT::Node.node() understands.
21:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41890/
21:58 theory joined #parrot
22:16 dalek parrot: r41891 | pmichaud++ | trunk/compilers/pct/src/PCT/Node.pir:
22:16 dalek parrot: [pct]:  Error in previous commit.
22:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41891/
22:30 Whiteknight joined #parrot
22:31 * darbelo watches an avalanche of purl-o-grams engulf an unsuspecting Whiteknight
22:32 davidfetter pretty soon he'll be talking backwards
22:33 Whiteknight awesome. loves me some messages
22:33 Whiteknight darbelo++ # you're a rock star
22:34 darbelo sdrawkcab gniklat s'taht uoy s'tI on ,mmH :rettefdivad
22:34 dukeleto Whiteknight: yes, he is on the ball today
22:35 Whiteknight I would have been in here like an hour ago, but the fire alarm in my apartment building went off and we had to go outside
22:35 darbelo No actual fire?
22:36 Tene we can fix that.
22:37 * darbelo gets his flamethrower.
22:37 Tene but how will we light the flamethrower?  We need a bootstrapping stage...
22:38 * darbelo pulls his bootstraps.
22:38 Whiteknight no fire
22:38 dukeleto FIRE!
22:39 darbelo ZOMG! I knew this bootstraps were magical!
22:39 dukeleto what happens to people that yell 'FIRE!' in a crowded IRC channel, when there is no fire?
22:40 darbelo They get punished!
22:40 darbelo purl: annoy dukeleto!
22:40 purl darbelo: excuse me?
22:40 darbelo Bah, useless bot.
22:49 dukeleto purl, be useful
22:49 * purl whirrs and clicks in the background. or i try dukeleto's best
22:50 darbelo purl, be useful
22:50 * purl whirrs and clicks in the background.
22:50 darbelo still not useful, but less confusing.
22:51 darbelo ;)
22:51 dukeleto purl, go play in traffic
22:51 * purl wanders off to dent some cars.
22:54 cconstantine joined #parrot
22:54 theory joined #parrot
22:55 darbelo Whiteknight: ping
23:06 kid51 joined #parrot
23:08 kid51 mikehh ping
23:10 dalek tracwiki: v109 | jkeenan++ | WikiStart
23:10 dalek tracwiki: Delete line in hackathon schedule referring to last week's hackathon
23:10 dalek tracwiki: https://trac.parrot.org/parrot/wiki/W​ikiStart?version=109&amp;action=diff
23:10 shorten dalek's url is at http://xrl.us/bfssa9
23:13 cconstantine joined #parrot
23:14 dalek TT #1061 closed by jkeenan++: Lists of test files duplicated.
23:25 AndyA joined #parrot
23:28 darbelo left #parrot
23:29 theory joined #parrot
23:31 kid51 msg mikehh Re:  https://trac.parrot.org/parrot/ticket/1102  Was your changing the name of this ticket to 'pass' intentional?
23:31 purl Message for mikehh stored.
23:35 AndyA joined #parrot
23:36 AndyA joined #parrot
23:41 darbelo joined #parrot
23:45 kid51 Is there any reason why as the *owner* of a TT I would *not* get email notifications of new posts to the ticket?
23:46 kid51 I failed to receive notifications to at least one post (plus some attachments) to https://trac.parrot.org/parrot/ticket/1105?
23:51 Austin joined #parrot
23:56 dalek parrot: r41892 | jkeenan++ | branches/auto_libjit (6 files):
23:56 dalek parrot: Applying to auto_libjit branch two (of three) patches submitted by plobsing in
23:56 dalek parrot: https://trac.parrot.org/parrot/ticket/1105.  (Still not building on systems
23:56 dalek parrot: lacking libjit.)
23:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41892/
23:57 TiMBuS joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced