Parrot 1.6.0 "half-pie" released! | Test CallSignature PMC | pcc_reapply branch still needs your love! trac.parrot.org/parrot/wiki/Callin...nsOverview
Set by moderator on 12 October 2009.
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.
darbelo dukeleto: and then we put it back on the list. historical++
Whiteknight we can mark it as un-abandoned when it picks up again
dukeleto Whiteknight: touche
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.
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"
dukeleto chromatic: that sounds like a good principle
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
and we can avoid creating unnecessary PMCs
dukeleto Whiteknight: i think projects that require parrot pre-1.0 is a decent working definition of 'abandoned' 00:02
Whiteknight only if the project is not being worked on 00:03
it's not inconceivable that a project is intentionally targetting an older "stable" Parrot
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.
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
chromatic I don't see the "separation of concerns" arguments. 00:05
If anything, I think we have too much separation of concerns.
We have the arguments passed stored in one place and information about which arguments we're passing stored in another place.
Whiteknight we certainly won't rush into anything, but unification of some key aspects of the calling hotpath is a necessity eventually
darbelo dukeleto: my andidates from the list are BASIC, c99, eclectus, forth, lisp, Pirate, PJS, regex, scheme
Whiteknight there are plans to merge RetContinuation into Context first though
jonathan chromatic: I thought the CallSignature was meant to hold all details of what was being passed. 00:06
chromatic It is. 00:07
japhb Man, I wish I had enough spare tuits to do a Parrot port of my Perl 5 Forth ...
chromatic The problem is that it doesn't actually contain the storage of what gets passed.
jonathan chromatic: Are you conflating the arguments being passed with their final destination after being bound against a signature? 00:08
I thought a CallSignature directly contained pointers to the PMCs being passed...
chromatic It does.
purl stays quiet
chromatic It contains pointers to *register* locations.
jonathan Erm.
It doesn't contain the actual PMCs? 00:09
chromatic For incoming parameters, it does.
We copy them out of contexts into CallSigs to copy into contexts.
jonathan No, we copy *pointers to them* into...
dukeleto darbelo: are you proposing deleting those langs or just marking them as 'abandoned' on the wiki
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.
And something we can change within a deprecation cycle, iiuc.
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?
chromatic I think we can all agree that the current design copies too many things and moves too much memory around.
jonathan (That is, we only create pointers to the destination registers because at the moment set_results comes first.)
chromatic I may be the only one saying that variable-sized register sets was a mistake. 00:12
jonathan Maybe. :-)
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.
jonathan Which don't.
And then have the PMC have a positional interface that fetches them.
chromatic The sub rearranges its parameters as it sees fit.
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.
darbelo dukeleto: If somebody ask me "What languages can I run on parrot" I'd like to point them at that page.
chromatic Why do we need to have a PMC-based interface to get/set registers?
jonathan Of course, then your dealings with flattening thingies get fun.
dukeleto darbelo: ok, that sounds good. perhaps just make another table below the current one with abandoned langs?
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.
darbelo was joking.
jonathan chromatic: And providing a common way to access them.
chromatic I think the problem is this.
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.
chromatic We need to be able to describe the signature at the caller point and the callee point.
Occasionally (MMD) we need to find compatible signatures and convert between them.
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.
chromatic Not every PIR call a Rakudo program makes uses MMD.
Not every PIR call an arbitrary program running on Parrot uses MMD.
jonathan Of course, but a substantial number of them are.
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.
chromatic Sure, we have a deprecation policy and I think that's reasonable. 00:19
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?
I'm not arguing against the deprecation policy.
jonathan Ah, I meant arguging about the get/set params opcode ordering. :-) 00:21
How to be efficeint is of interest. :-)
chromatic That's my concern: efficiency.
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.
jonathan So that particular concern has a timeframe for being dealt with.
chromatic I think I can get rid of that.
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.
Sugared how?
jonathan x = 'foo'(y, z)
Can we compile that to whichever ops we want without breaking depercation policy? 00:24
So long as folks writing PASM can also write the alternate ordering through January?
chromatic It's a change to IMCC, which is doable.
Probably doable.
jonathan I'm not sure how feasible maintaining two approaches is.
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.
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
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
chromatic I don't necessarily see how. 00:27
00:28 mikehh joined
jonathan chromatic: $a + $b in Rakudo compiles down to 'infix:+'($a, $b) 00:28
Well, the registers containing $a and $b
chromatic We have to find the appropriate candidate and may have to convert some registers through boxing/unboxing.
jonathan Right. 00:29
chromatic Is there anything else that penalizes registers?
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.
jonathan But note that we find the appropriate candidate and *then* invoke it.
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.
nopaste "Whiteknight" at 69.249.176.251 pasted "general approach for fixing tailcalls" (101 lines) at nopaste.snit.ch/18352
jonathan Even though Rakudo already knows it has two Ints.
pmichaud I'm not necessarily making a point, just bringing up another observation.
Many of the things that we think of as promoting efficiency (e.g., int registers) end up being terribly inefficient for rakudo. 00:31
for example, consider $a + 1
we can compile this down to
'infix:+'($a, 1)
or
$P0 = box 1
'infix:+'($a, $P0)
it turns out the latter is more efficient. 00:32
chromatic It shouldn't be, but I agree.
pmichaud especially if $a + 1 is in a loop, and we move the constant generation out of the loop.
so the claimed advantage of integer constants and integer registers kinda disappears.
s/claimed/widely believed/
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:33
(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.
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
jonathan That's quite a lot of analysis.
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.
jonathan pmichaud: no, that's one thing we *don't* have to worry about here. :-)
pmichaud: lowercase int is spec'd as "CPU register int"
For Int, though, yes, for sure that's also an issue.
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.
chromatic Exactly. If managing *all* kinds of registers is inefficient, it doesn't matter if you use primitives or PMCs.
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.
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:38
00:39 mikehh joined
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
jonathan Anyway, it's laaate here. I need sleep.
Whiteknight goodnight jonathan
chromatic Yeah, I think en passant callee-side conversions make more sense.
Whiteknight exactly 00:40
chromatic The MultiSub invoke is even a convenient place to do so.
Or a special get_params op for multis... or something.
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.
Whiteknight purl msg allison can you take a look at 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.
Whiteknight The only thing I worry about is Rakudo 00:43
their behavior of passing control to the next multi variant means they need to store a raw form of passed args
chromatic They do have their own PMCs for this though. 00:44
Whiteknight this is true 00:45
some of the Perl6 semantics are so complex and involved, it's hard to really support them at any level
especially if we want to offer equal support to any other languages
not that it's a bad thing, the p6 spec is rediculously ambitious 00:46
00:47 rhr joined
Austin WhiteKnight: That's why perl6 programs will always have filenames ending in .pl6 00:47
Or plvi 00:48
dalek rrot-plumage: 7726562 | leto++ | :
[t] Add some tests for path_exists()
shorten dalek's url is at xrl.us/bfsm42
Whiteknight Austin: and why all Perl6 programs are at least O(n^4)
Austin :)
(It's funnier if you've ever worked in PL/I, natch...)
Whiteknight the first "Killer App" written in P6 will be skynet
00:48 integral joined
Whiteknight and it will actually kill 00:48
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
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:50
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."
Whiteknight well, price of grain futures in brazil is a standard metric in computer science 00:53
so that's fortuitous
chromatic It's a Hamilton number, right? 00:54
Austin What's a Hamilton number? 00:58
err.
What *is* a Hamilton number?
dalek cnum-dynpmcs: r188 | darbelo++ | trunk/ (8 files):
Convert our build to single-makefile, all build products now go into
Austin Grr. 01:00
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.
Whiteknight yeah, that's a perl-ism that I never liked 01:02
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.
(My office is a 3rd bedroom, and the window in question is a "slider".)
Whiteknight let me tell you how great it is to debug THOSE kinds of errors
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:04
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.
chromatic Why don't you have a ... oh, right.
dukeleto darbelo: what is the difference between 'abandoned' and 'retired' ? (defined at the bottom of the wiki page) 01:08
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.
cotto_work chromatic++ for taking pizza out of someone else's fridge 01:28
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, ...
Whiteknight what's more surprising is that they ended up being the same fridge because GE didn't lexically scope them
chromatic I hope my cupcakes are still present. 01:30
If I get a vote, can we set TT #1102 on fire? 01:33
cotto_work goes off to add a new "on fire" ticket resolution. 01:35
or maybe it should be a status.
Austin Why this animus towards TT? 01:36
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:43
dukeleto japhb: and make it easier to test ;) 01:46
chromatic: what does a burning ticket mean?
japhb dukeleto, yes, that had crossed my mind. ;-) 01:48
kid51 unpacks a box that just arrived and finds ... Parrot Developer's Guide: PIR 01:50
dukeleto japhb: i am on that now 01:51
kid51: can you take a pic? where do I order one?
kid51 amazon 01:52
01:53 JimmyZ joined
kid51 is startled to see he gets a mention in the "Parrot team" section of the endpaper 01:54
01:54 rhr joined
solarion interesting 01:54
dukeleto kid51: how many pages? 02:02
02:02 dalek joined
dukeleto kid51: 118 02:02
dukeleto has to learn to scroll down
kid51 v + 113 = 118
Granted, I could have read it online ... 02:03
... but that's just so 21st century!
dukeleto kid51: does anybody know which svn rev the printed book roughly corresponds to? 02:04
kid51 Somebody does ...
dukeleto kid51: or in other words, how old is the dead tree version?
kid51 ... but I'm not that body
well, whiteknight and allison are the lead authors, so I presume they know. 02:05
And they probably posted on channel at the point the book went to press.
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
"pbc" => PMC 'Eval' { ... }
japhb: how do I turn .nqp into .pbc ?
02:06 abqar joined
dukeleto japhb: also, i have nqp aliased to parrot_nqp 02:06
Austin parrot_nqp
purl rumour has it parrot_nqp is just the name of the fakecutable binary
dukeleto purl: that might actually be useful 02:07
purl dukeleto: what?
dukeleto purl, be useful is i try my best
purl ...but be useful is <action>whirrs and clicks in the background....
dukeleto purl, be useful is also i try my best
purl okay, dukeleto.
dukeleto purl: be useful
purl whirrs and clicks in the background. or i try dukeleto's best
dukeleto facepalms
kid51 purl, good bot 02:08
purl thanks kid51 :)
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
For some value of /usr/local 02:09
chromatic The book roughly corresponds to 1.6. 02:10
PIR hasn't changed much since then though. 02:11
Austin There's a good question: Is pcc_reapply coming in 1.7?
chromatic No. 02:12
Austin <whew>!
Taxes won't be too bad this month, then.
02:22 rhr joined
japhb dukeleto, see Makefile.in. 02:33
It's a multistage process
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. ;-)
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, janus joined
dukeleto msg japhb i alias nqp=parrot_nqp, just 'cause I am lazy :) 02:44
purl Message for japhb stored.
dukeleto japhb: i see the multi-staged-ness now. i should have it working soon... 02:45
one could write a treatise on effective laziness based on my .bashrc alone 02:49
Tene dukeleto: I alias n=parrot-nqp, p=parrot, r=perl6 02:53
r{pir,past,parse}='perl6 --target=foo' 02:54
lots more
cdp='cd ~/src/parrot/' 02:55
nopaste "dukeleto" at 69.64.235.54 pasted "can you tell that I work in deep directory hierarchies at $work?" (8 lines) at nopaste.snit.ch/18353 02:57
dukeleto Tene: do you have yours under version control?
Tene: github.com/leto/Util/tree/master/config 02:58
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
japhb: that sounds like a create feature
japhb: perhaps the zsh folks will do something like that
chromatic I like pushd/popd. 03:00
japhb alias dirv='dirs -v' # The way it should have been, dammit
chromatic, extra points if you do 'pushd -0' on a regular basis. :-) 03:01
Austin Speaking of shell programming, some guy on reddit (!) just posted a "high precision status bar" for bash. 03:02
Apparently reddit is now the cool place to show off your warez.
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
Austin :)
Swine flu is the new celebrity fashion disease, dukeleto. Aren't you keeping up on TMZ?
japhb Austin, url? 03:04
Austin www.reddit.com/r/programming/commen...r_in_bash/
shorten Austin's url is at xrl.us/bfqec4
Austin Or did you mean? : www.tmz.com/2009/09/24/swine-flu-al...hollywood/ 03:06
shorten Austin's url is at xrl.us/bfsnsx
japhb OMG MY EYEZ
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:08
dalek rrot-plumage: 144bc0d | leto++ | :
[util] Refactor utility functions of plumage.nqp into src/lib/Util.nqp
03:09
shorten dalek's url is at xrl.us/bfsns5
03:16 davidfetter joined 03:37 plobsing joined 04:07 abqar_ joined 04:22 mikehh joined 04:30 mikehh joined
dalek TT #1114 created by mgrimes++: [patch] Converted some tests from perl to pir 05:02
05:07 kyle_l5l joined 05:37 desertm4x joined 05:47 uniejo joined 05:58 he_ joined
dalek cnum-dynpmcs: r189 | darbelo++ | trunk/Configure.pir:
Give Configure.pir a --help option and make it verbose to let the user know
06:03
06:23 theory joined
chromatic msg whiteknight factor-language.blogspot.com/2009/1...ctors.html 06:27
purl Message for whiteknight stored.
shorten chromatic's url is at xrl.us/bfsocv
JimmyZ whiteknight? 06:34
purl whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
kyle_l5l is there a way to see what a program in PIR looks like after being compiled to pasm? 06:36
chromatic ./parrot fun.pir -o fun.pasm 06:37
06:40 UltraDM joined
kyle_l5l does set_args take any arguments? (I'm not seeing any in the pasm) 06:40
chromatic It has a constant PMC stored in the bytecode representing the signature. I believe it's a FixedIntegerArray. 06:41
06:50 iblechbot joined 06:54 fperrad joined
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) 06:59
chromatic There are a couple of notes in IMCC that it doesn't dump all of PIR appropriately. 07:00
The pbc_dump utility may be more useful.
kyle_l5l alright 07:01
07:24 donaldh joined 07:40 mikehh joined 07:48 GeJ joined 07:50 masak joined 07:55 bacek joined
bacek o hai 07:55
07:56 mikehh_ joined 08:01 mikehh joined
dalek rrot: r41885 | fperrad++ | trunk/tools/install/smoke.pl:
[install] since r41417 , NQP is installed as an executable parrot_nqp
08:09
mikehh should have reported this a few ago but fell asleep 08:11
trunk - pre/post-config, smoke (#29064) PASS, fulltest FAIL at r4184 (see TT #1102) - Ubuntu 9.10 (beta) amd64 08:12
fulltest - testf and testg now PASS but testS still FAILs
t/compilers/imcc/syn/macro.t - Failed tests: 2-4
t/compilers/imcc/syn/regressions.t - Failed test: 7
all other tests in fulltest PASS
that's r41864
08:13 uniejo joined
bacek mikehh: you can fix regexes in failing tests. It's just adding |0 into it. 08:25
mikehh: just after |-1 08:27
mikehh bacek: will have a look in a bit - got to go to get some stuff from Macdonalds - bbiab 08:32
08:43 mokurai left 09:06 AndyA joined 09:25 AndyA joined
dalek rrot: r41886 | mikehh++ | trunk/t/compilers/imcc/syn (2 files):
fix failing tests in testS for macro line numbering
10:10
mikehh messages 10:16
10:19 petdance joined
mikehh All tests PASS (pre/post-config, smoke (#29075), fulltest) at r41886 - Ubuntu 9.10 (beta) amd64 10:43
10:57 jsut_ joined 11:08 cconstantine joined 11:41 einstein joined 12:02 JimmyZ joined 12:06 whiteknight joined
whiteknight good morning #parrot 12:08
12:10 payload joined
JimmyZ good morning, whiteknight . 12:10
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.
s/broken/not intended to work/
JimmyZ whiteknight: Fine, thanks. I just visited your blog, there are many good articles talking about Parrot. 12:19
whiteknight: That's helpful for newcommer. 12:21
whiteknight thanks! I try to provide lots of information
I feel like it helps people get involved
dalek TT #1102 closed by jkeenan++: test failures with t/compilers/imcc/syn/macro.t and regressions.t in fast, ... 12:22
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:24
whiteknight really? I didn't know it was blocked 12:25
JimmyZ whiteknight: many sites such as facebook, twitter also are blocked by it. 12:26
whiteknight I guess that doesn't surprise me though
dalek TT #1102 reopened by coke++: test failures with t/compilers/imcc/syn/macro.t and regressions.t in fast, ... 12:28
Coke reopens 1102! whee! 12:30
JimmyZ whiteknight: It really take me several months to find a useable proxy to visit your blog. 12:31
12:31 bluescreen joined, desertm4x joined
nopaste "dukeleto" at 69.64.235.54 pasted "fib.pir benchmarked across released versions of parrot, trunk@r41884, pcc_reapply@r41884" (15 lines) at nopaste.snit.ch/18355 12:32
dukeleto msg chromatic 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.
dukeleto 'ello
whiteknight we know there's a factor of two slowdown in branch 12:34
there are lots of critical path optimizations needed stil
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:37
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
obviously it's something we need to look at across the board
dukeleto whiteknight: that is very understandable. i am interested to see what chromatic has to say about those benchmark numbers. 12:39
whiteknight yeah
we know the context refactors slowed things down
Coke newsflash: parrot is still slow. 12:42
JimmyZ newsflash: parrot will be faster. 12:43
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. :)
Coke I'm going as fast as I can. =-)
masak heh :) 12:45
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:48
Coke dukeleto: It seems to do fine at hand crafted pir examples vs. perl5 12:49
I have yet to see any compelling HLL timings.
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? =-)
for me? HLLs.
so, parrot, being used as I expect it is intended to be used, is still slow.
dukeleto Coke: i think we are still in the stage of giving HLLs features, and not quite in the stage of optimizing for HLLs
Coke: yes, for an HLL, parrot is slow 12:51
Coke dukeleto: Agreed on both counts (slow for HLLs, still missing features) 12:52
so, I cringe whenever I see "parrot is fast(er)!". =-) 12:53
(even to run the tcl program 'exit', partcl takes .675s while tcl8.5 takes 0.005s, e.g.) 12:54
JimmyZ :( 12:55
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:04
i am learning a lot about valgrind and cachegrind, so hopefully I become useful in that area soon as well 13:05
13:06 payload joined
whiteknight Once we get the last few failing tests fixed, more people will be able to do more optimization work 13:07
I don't want to focus on optimizations myself until they're fixed, anyway 13:08
JimmyZ promising 13:11
purl promising is, like, a term for developing stuff.. >: [
whiteknight I definitely want to pay more attention to what kinds of optimization ideas chromatic and bacek are coming up with 13:43
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:49
dalek rrot: r41887 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
[pct]: Use explicit Undef check for parseactions instead of get_bool.
13:50
whiteknight yeah, it's going to be quite the experience
dukeleto whiteknight: those rakudo guys, they might beat us up :) 13:51
13:51 payload joined
whiteknight fixing the NCI frame builder will cut 30% off startup time I think 13:51
a proper generational GC will give us between 2%-30% depending on workload
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
Coke: none that I know of
jonathan plans to run the profiler against Rakudo in the not too distant future. 13:56
And work out what's costing us (besides signature binding, which I'm in the process of dealing with at the moment.)
whiteknight profiling these things will be a very good thing, although I have a good idea about where a lot of slowdowns are
chromatic I'm sure knows better 13:57
jonathan whiteknight: I'm not entirely sure where Rakudo's worst runtime ones are outside of the sig binding. 14:01
So I'll be interested to see the results.
whiteknight Me too. I don't know enough about Rakudo to guess where your bottlenecks are going to be 14:05
I have to suspect startup, parsing, and MMD are going to be huge 14:06
14:09 Psyche^ joined
jonathan whiteknight: Startup isn't great, but in the last week or two it's had 40% shaved off of it. 14:11
whiteknight: MMD is fairly efficient.
whiteknight: Parsing isn't, but there's a fix in the works for that.
If startup could lose another chunk off it, that'd be great though. 14:12
dalek rrot: r41888 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
[pct]: Explicitly allow protoobjects as parseactions in HLLCompiler.
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.
whiteknight jonathan: yeah, like I said I can only guess where slowdowns might be. 14:18
jonathan whiteknight: Not if you run the profiler. ;-)
whiteknight true,
14:27 JimmyZ joined
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
(what is the git-way of doing svn's merge changes from trunk)
which gitk 14:31
whiteknight wouldn't it be something like git pull master? 14:32
Coke or git rebase. 14:35
purl rumour has it git rebase is cool
Coke (or git merge) 14:36
14:42 payload joined
Coke (ok. git checkout --track -b foo origin/foo; git merge master) . modulo a lot of conflicts. 14:43
14:45 pjcj joined
dalek rtcl: 82b7665 | coke++ | docs/spectest_skips:
Update spectests (slightly different results on new testing platform)
14:45
shorten dalek's url is at xrl.us/bfspmi
14:50 iblechbot joined
Coke if I do a merge from master into a branch, does it do the whole thing as a single commit? 14:56
dukeleto Coke: yes 14:57
Coke did I really want a rebase here?
dukeleto Coke: not sure, backlogging
Coke I have a very old branch; trying to bring it up to date with master.
dukeleto Coke: also, trackking is default now-a-days
14:58 mikehh joined
dukeleto Coke: git checkout -b foo origin/foo make a local branch that tracks the one on github 14:58
Coke: then I think you might want 'git rebase master' ?
Coke: i think
s/make/makes/ 14:59
dukeleto is still getting over being sick and is still making lots of dumb typos
Coke ok. how can I delete my local branch that tracks the origin branch?
(so I can try this over.)
dukeleto Coke: git branch -d foo
Coke: or git branch -D foo if you are sure :) 15:00
Coke: -d only deletes it if it has been merged in. -D will delete any branch, regardless
Coke: i tend to try -d first, then make sure to myself that I don't want it, then do -D
Coke: you can always get it back with git reflog, so it ain't that big a deal 15:01
Coke: does this newer patch look reasonable to you? trac.parrot.org/parrot/ticket/1085 I am testing it now 15:02
Coke dukeleto: is that the tcl patch? 15:03
it's pretty much entirely orthoganol to partcl. No opinion.
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?
dukeleto Coke: yes 15:05
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:06
Coke: git add is the same as 'svn resolved file' when you are fixing conflicts 15:07
Coke: basically you are telling git to update the index with what the working copy is now
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:18
.. if I do a git push, I get "everything up to date". huh? 15:24
also, "not currently on any branch" . huh?
(switch to branch. git push. everything up to date) 15:26
I am very confused. :|
dukeleto Coke: hmm 15:40
Coke: what does git status -a say?
Coke I've moved on. Just did the whole thing again, this time failing on git push; 15:43
$ git push
To git@github.com:partcl/partcl.git
! [rejected] tclint -> tclint (non-fast forward)
error: failed to push some refs to 'git@github.com:partcl/partcl.git'
dukeleto Coke: do a pull first 15:46
Coke dukeleto: AIGH
now all my conflicts are back.
the ones that I have now fixed ... what, 3 times?
=-)
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
s/write/right/ # ug
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
Coke at this point, I'm probably just going to destroy the branch and recreate it because git sucks. =-)
dukeleto Coke: let me ask that question in normal-speak
Coke: do you care about the state of the remote branch 'tclint' right now? do you want to rewrite its history? 15:49
Coke dukeleto: that's not entirely normal speak. =-) 15:50
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?
Coke dukeleto: you overestimate the # of people looking at partcl. right now it's just me. =-)
cotto_work LLVM videos: llvm.org/devmtg/2009-10/
dukeleto Coke: then doing a git push --force will do what you want 15:52
Coke I do not like the sound of that.
but I have no idea what it means. =-)
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.
'the command' refers to 'git push' 15:53
15:53 theory joined
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
Coke: actually, you can do that instead.
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.
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
Coke: it could be that you just have lots of actual conflicts between that branch and master.
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."
true?
purl rumour has it true is not false
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
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?
purl Message for darbelo stored.
darbelo Coke: Probably.
Coke msg darbelo added you as a collaborator on partcl/partcl 16:01
purl Message for darbelo stored.
whiteknight purl forget true
purl whiteknight: I forgot true
Coke oh, hai.
whiteknight hi
darbelo hi
purl salut, darbelo.
Coke darbelo: feel free to delete that branch and recreate it. I suspect the remaining branches may suffer a similar fate.
darbelo I'll delete now, recreate later when I actually have some tuits to work on it. 16:02
Coke darbelo: +1 16:04
purl 1
Coke darbelo++
darbelo I get karma for punting stuff?
Coke darbelo++ #questioning authority 16:05
darbelo :)
cotto_work some days you get karma for existing
Coke cotto_work-- # smart-talk. 16:06
karma cotto
purl cotto has karma of 956
Coke karma cotto_work
purl cotto_work has karma of 5
16:11 payload1 joined
Coke -> afk 16:14
whiteknight cotto_work++ # links to LLVM videos 16:16
downloading several now 16:17
cotto_work whiteknight, which ones?
16:17 allison joined
whiteknight Unladen Swallow, the GC efficiency one, the action script one, spacial memory safety, and the ruby one 16:18
those are the ones that I think, reading the descriptions, are most pertinent for Parrot
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.
whiteknight I saw that. But I figure most of our conversions are going to be PBC -> LLVM, not the other way around
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.
whiteknight The Rubinius guy says he's never seen any documentation or examples for using a JIT with a stackless VM 16:29
I didn't expect it to be too difficult to do 16:30
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:36
16:37 cognominal joined 16:41 davidfetter joined 16:51 HG` joined
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
17:31 payload joined
cotto_work redbrain, great! 17:32
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:33
anyways i am heading on to get food be back online later :) 17:34
17:34 redbrain left
cotto_work nom 17:34
17:35 allison joined
cotto_work Coke, did you have any hashing library in mind when you added that comment to ItsABughunt? 17:37
Coke any of the ones that I found several years ago when I suggested it and did a google search? =-) 17:38
(no, no one in particular.) 17:39
17:43 AndyA joined
cotto_work what advantages are you thinking of? 17:43
dalek rrot: r41889 | mikehh++ | trunk/t/compilers/imcc/syn (2 files):
revert r41886 and mark failing tests in testS for macro line numbering as TODO
17:50
17:52 HG` joined
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
darbelo Coke: you'd need an Artistic 2.0 licensed wheel. 18:02
Coke darbelo: only if we include it in core.
s/core/repo/
we can depend on 3rd party libs without much problem.
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.
Coke darbelo: see also ICU. 18:04
18:04 rdice joined
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.
Coke at least 2 HLLs are completely dead without ICU.
pmichaud wonders which 2 those are.
Coke is overselling. 18:05
doesn't rakudo currently require ICU?
darbelo rakudo and which other?
pmichaud for full functionality, yes.
Coke so, overselling.
s/completely dead/not fully functional/ =-)
pmichaud but it isn't "completely dead" w/o it :)
Coke partcl.
darbelo Oh.
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
pmichaud (15 test files out of 450, fwiw) 18:07
Coke this is true for a lot of code. (jit, nci, icu, bignums, ....)
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.
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
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.
(OS X 10.4/intel, e.g.)
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. =-)
PerlJam pmichaud: no,no, let's be like netscape! ;>
pmichaud what, and rewrite the whole thing in Java? ;-) 18:12
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.
packaging a library is often a lot less effort than writing one from scratch :) 18:14
I'm just sayin', thazzall. :)
18:16 ruoso joined
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.
Coke darbelo: define "all oses parrot has to run in" ?
pmichaud I'd even like to see "half of the supported platforms" :-) 18:17
PerlJam parrot has to run in an OS?
:)
darbelo First approximation: The list of OSes I can tag a ticket with.
pmichaud PerlJam: no, I don't think we support EMACS yet. 18:18
True value: The Parrot team is committed to supporting the following combinations as 18:19
"core platforms": Linux (x86), Win32 (x86), OS X (x86 and PPC), Cygwin, Tru64,
OpenVMS (Alpha), FreeBSD (x86).
I count seven.
er, eight.
darbelo Packaged on: Some linux, Win32, macports, and ...
pmichaud I don't think we claim to support every packaging system for each one of those core platforms. 18:20
18:21 joeri joined
darbelo We don't package for Cygwin, Tru64, OpenVMS or FreeBSD 18:21
half.
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...? ;-)
darbelo The first page of google results for "parrot cygwin" shows 0.6.4
pmichaud s/manpower/resources/ 18:23
darbelo pmichaud: No. I'm saying we need look again at the whole "running on toasters too" goal.
pmichaud is "running on toasters" (or its approximation) somewhere in our roadmap/timeline ? 18:24
(out of curiosity)
jonathan
.oO( pmichaud, our resident toaster expert :D )
18:25
pmichaud
.oO( for that, I need to put the 'hcf' opcode back into Parrot :-)
darbelo There's noise every now and then about 'running everywhere perl does, and more!'
pmichaud Oh. At PDS 2008 I think we decided to forego that particular goal for the time being. 18:26
I'm not sure it was decided what "the time being" meant, though.
darbelo was not at the PDS :(
whiteknight means "forever"
speaking of PDS, weren't there talks to do a virtual one this year?
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)
whiteknight I've been heads-down on pcc stuff, so I'm in the same boat
Coke darbelo: the package on macports is hideously out of date and hasn't worked for some time with trunk.
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.
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.
darbelo I'll trade it for FreeBSD, I just found a port for 1.4 there.
pmichaud I think we'd really want to make sure the next meeting can involve direct participation from people who cannot travel.
Coke so, making the package is irrelevant, since I can't even run "make install"
once make install works, the package is simple. 18:29
whiteknight Okay...so what needs to happen to fix that?
Coke whiteknight: if I knew, I'd fix it. tehre's a ticket open for some time now.
whiteknight is not familiar with the plight of OSX
if I had a Mac, or access to one, I would fix it
pending that, SOL
darbelo whiteknight: We need to get more OSX experts. 18:30
Coke darbelo: ... more?
18:30 mikehh joined
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.
darbelo Coke: Yes, a non-negative number of them.
That's more than we have now. 18:31
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
Coke whiteknight: no. good luck getting any h/w from apple, either. 18:32
I've given out dev accounts on my home desktop machine in the past to no avail.
whiteknight I have some mac-loving inlaws that I might be able to convince that they need to "upgrade"
:)
darbelo isn't a native english speaker. 18:33
Coke soon it won't matter for me either, as I hear 10.5 JFW.
darbelo: just explaining why I picked on that particular word.
whiteknight JFWing is a major feature
does apple do hardware donations and stuff to open-source groups? 18:35
I hadn't even considered that path
Coke not SFAIK.
ISTR that people on the board have asked. 18:36
and we have an ex-parrot person at apple who I think has also told me no.
whiteknight okay, well I will continue not considering that path
darbelo Coke: That TT needs to go into the roadmap, marked with "BLOCKER" in big angry letters.
Coke (but that may just have been because he had no access.)
pmichaud I wonder if we could get a donation from one of our sponsors (or possibly a new sponsor)
instead of trying to hit apple up directly.
Coke darbelo: yes, well, i can only open so many tickets that don't get responded to. =-)
whiteknight soliciting a donation would be quite hot
whiteknight would love to set up a little build farm with a lot of test machines
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
and we might be able to solicit a cash donation if we could say "it's going to be used for this specific purpose"
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
Coke: What's the ticket number?
pmichaud another possibility might be to start asking various apple user groups for help 18:39
could grow our developer pool.
darbelo (grow our developer pool)++ 18:40
cotto_work developers developers developers
Coke whiteknight: 910 "macport/installing on OS X"
whiteknight what compiler are you using, gcc? 18:41
for that matter, could you just post your entire config/build log?
Coke whiteknight: no, I'm busy ATM. please post questions on the ticket, I'll get to it when I can. 18:44
(gcc) yes.
it's pretty much the only game in town.
darbelo for now, at least. 18:45
Coke ?
whiteknight I wonder if you could try building with LLVM? I know Apple has been putting some energy into that lately
darbelo apple has been making noises about LLVM for a while.
Coke whiteknight: on 10.4 ? I highly doubt it.
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
(in that we have no one with the time to make it work on my 2 year old OS.)
darbelo SOL?
purl SOL is Shit Outta Luck. or the sun or s/Shit/Straight/ or snicker out loud
darbelo ah 18:48
mikehh All tests PASS (pre/post-config, smoke (#29100), fulltest) at r41889 - Ubuntu 9.10 (beta) amd64 18:50
cotto_work cool. the unladen swallow presentation mentions parrot 18:51
whiteknight really? I haven't watched that one yet 18:56
I was in the middle of the VMKit one and got distracted 18:57
I really would love to go to this one next year
cotto_work hopefully we'll even have something to talk about by then 18:59
19:01 mikehh joined 19:02 mokurai joined
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 www.llvm.org
cotto_work llvm is also not the cure for cancer
purl okay, cotto_work.
19:09 Ron joined
cotto_work possibly useful page describing python's bytecode instructions: www.python.org/doc/2.5.2/lib/bytecodes.html 19:09
19:18 chromatic joined, desertm4x joined
cotto_work chromatic, do the tagged pointers in CallSignature have the potential to mess up gc? 19:19
chromatic I can't imagine how. 19:20
They all get marked appropriately.
If the tagging didn't work, we wouldn't get to the point of asking "Is this a GC bug?"
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.
apparently it is.
whiteknight I like the idea of resizable Pointer Array
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.
whiteknight Positional arguments seem to be accessible in order, so we can optimize for ordered access
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.
We don't have a heap scanner looking for all heap-allocated pointers though.
whiteknight we really don't want a heap scanner either
19:24 mikehh joined
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.
Could help branch prediction.
dalek p-rx: 4741f3d | pmichaud++ | src/ (2 files):
Remove Regex::P6Regex::Grammar's dependency on PCT::Grammar.
19:26
shorten dalek's url is at xrl.us/bfsq4u
dalek p-rx: 5d42e76 | pmichaud++ | src/Regex/P6Regex.pir:
Correct compiler class to be Regex::P6Regex::Compiler .
shorten dalek's url is at xrl.us/bfsq4w 19:27
dalek p-rx: 638b1b5 | pmichaud++ | src/ (4 files):
Add naive protoregexes (from PGE cheats) to Regex::Cursor for bootstrapping.
shorten dalek's url is at xrl.us/bfsq4y
whiteknight that VMKit video has very interesting information about a proper precise GC
chromatic Where in fill_returns does it actually set the values in the CPointers? 19:31
Tene 'sec, I'll look 19:32
dukeleto Coke: can anyone else reproduce the error on 10.4 ? 19:34
Tene chromatic: most of the VTABLE_set calls in fill_results are assigning to the cpointers. 19:35
chromatic: look for result_item = 19:36
1590 fetches the cpointer in the positionals loop
chromatic VTABLE_set_pmc(interp, result_item, ...); 19:37
and so forth?
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:38
I don't expect any problems with rewriting that into set_*_keyed_int 19:39
whiteknight I also didn't realize that GDB7.0 had better JIT support 19:40
chromatic Let me work up a pointer array then.
cotto_work That was nice to find out.
whiteknight yes, now I really need to get GDB7
I wonder how long until it's included by the Ubuntu packagers
cotto_work too long 19:42
whiteknight true. that means I'll have to do the upgrade manually, which I hate
cotto_work however: blog.vinceliu.com/2009/09/how-to-bu...r-gdb.html
shorten cotto_work's url is at xrl.us/bfsq7v 19:43
whiteknight I'll check that out later
right now, I'm heading home
cotto_work it's pretty simple
assuming you can build it
whiteknight true, and that might be a nightmare
19:44 KatrinaTheLamia joined
cotto_work For me it just required figuring out the dependencies. 19:44
19:54 allison joined 19:58 bluescreen joined 20:04 confound joined
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:06
Tene Look at t/op/gc.t as a first step 20:07
well, I'll look.
nothing there 20:08
cotto_work gdb upgrade request for ubuntu as a bug report: bugs.launchpad.net/ubuntu/+source/...bug/446457 20:09
chromatic The sweepoff op.
pmichaud thanks.
...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
20:11 theory joined
chromatic Makes sense to me. 20:13
darbelo nopaste? 20:16
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
jonathan pmichaud: find_method the op, or find_method the vtable? 20:18
20:18 mikehh joined
nopaste "darbelo" at 200.49.154.173 pasted "Sample matrixy run for Whiteknight." (44 lines) at nopaste.snit.ch/18357 20:19
pmichaud find_method the op
jonathan pmichaud: ah, ok
I was gonna say, I'm pretty sure I've not seen a find_method vtable throwing...
pmichaud if find_method the vtable throws exceptions, that'd be Very Bad.
jonathan Yes, tell me about it... 20:20
purl i think it is about the ordering
jonathan purl: I think you are about retarded.
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...
jonathan purl: forget it
purl jonathan: I forgot it
darbelo purl: msg Whiteknight With my last push to github you can configure, build and run matrixy against an installed parrot. see nopaste.snit.ch/18357 20:21
purl Message for whiteknight stored.
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.
cotto_work We don't care about earlier parrots. We only look TO THE FUTURE.
darbelo cotto++ 20:24
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 20:28 einstein joined
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.
dukeleto darbelo: shweet! 20:29
darbelo nopaste.snit.ch/18357 is about as far as I've tested it.
dalek p-rx: 4506dba | pmichaud++ | src/Regex/P6Regex.pir:
Add a custom parse method to Regex::P6Regex::Compiler that understands cursors.
20:47
shorten dalek's url is at xrl.us/bfsrjt
dalek p-rx: c9a4f85 | pmichaud++ | (2 files):
Clean up parse and !reduce methods.
shorten dalek's url is at xrl.us/bfsrjv
darbelo Infinoid: ping
desertm4x darbelo: I've just tested building matrixy and it worked without problems. :-) great job! 20:48
20:50 theory joined
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?
darbelo japhb: not yet, matrixy builds, but the library it'll depend on doesn't. 20:51
japhb OK.
Any expected time frame for that? 20:52
darbelo Not today?
japhb *chuckle* 20:53
OK, I guess it's not a huge rush then.
japhb goes back to taking a chainsaw to his $day_job source tree
darbelo Whiteknight should be better qualified to answer that than I am.
japhb fair enough
jonathan rakudobug? 20:58
purl i heard rakudobug was mailto:rakudobug@perl.org
dukeleto msg whiteknight i've started using the issue tracker for matrixy: github.com/Whiteknight/matrixy/issues/#issue/1 21:02
purl Message for whiteknight stored.
darbelo dukeleto: (issue 1) maybe I shuld stick to the old-style invocation? 21:07
21:21 theory joined
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.
dukeleto darbelo: damn, you are quick!
darbelo Eh, it was an easy fix. 21:26
dalek p-rx: c381a19 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Handle quantified aliases like $<var>=(subrule)* .
21:27
shorten dalek's url is at xrl.us/bfsrqt
dalek p-rx: 3095780 | pmichaud++ | src/Regex/Cursor.pir:
Fix Cursor.parse to return a Match object.
shorten dalek's url is at xrl.us/bfsrqv
dalek p-rx: 7c2e928 | pmichaud++ | build/Makefile.in:
Temporary bootstrap helper target.
shorten dalek's url is at xrl.us/bfsrqz
cotto_work goes home early 21:36
darbelo yay!
dalek rrot: r41890 | pmichaud++ | trunk/compilers/pct/src/PCT/Node.pir:
[pct]: Generalize the types of nodes that PCT::Node.node() understands.
21:50
21:58 theory joined
dalek rrot: r41891 | pmichaud++ | trunk/compilers/pct/src/PCT/Node.pir:
[pct]: Error in previous commit.
22:16
22:30 Whiteknight joined
darbelo watches an avalanche of purl-o-grams engulf an unsuspecting Whiteknight 22:31
davidfetter pretty soon he'll be talking backwards 22:32
Whiteknight awesome. loves me some messages 22:33
darbelo++ # you're a rock star
darbelo sdrawkcab gniklat s'taht uoy s'tI on ,mmH :rettefdivad 22:34
dukeleto Whiteknight: yes, he is on the ball today
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?
Tene we can fix that. 22:36
darbelo gets his flamethrower. 22:37
Tene but how will we light the flamethrower? We need a bootstrapping stage...
darbelo pulls his bootstraps. 22:38
Whiteknight no fire
dukeleto FIRE!
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?
darbelo They get punished! 22:40
purl: annoy dukeleto!
purl darbelo: excuse me?
darbelo Bah, useless bot.
dukeleto purl, be useful 22:49
purl whirrs and clicks in the background. or i try dukeleto's best
darbelo purl, be useful 22:50
purl whirrs and clicks in the background.
darbelo still not useful, but less confusing.
;) 22:51
dukeleto purl, go play in traffic
purl wanders off to dent some cars.
22:54 cconstantine joined, theory joined
darbelo Whiteknight: ping 22:55
23:06 kid51 joined
kid51 mikehh ping 23:08
dalek tracwiki: v109 | jkeenan++ | WikiStart 23:10
tracwiki: Delete line in hackathon schedule referring to last week's hackathon
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/bfssa9
23:13 cconstantine joined
dalek TT #1061 closed by jkeenan++: Lists of test files duplicated. 23:14
23:25 AndyA joined 23:28 darbelo left 23:29 theory joined
kid51 msg mikehh Re: 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 23:36 AndyA joined 23:41 darbelo joined
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:45
I failed to receive notifications to at least one post (plus some attachments) to trac.parrot.org/parrot/ticket/1105? 23:46
23:51 Austin joined
dalek rrot: r41892 | jkeenan++ | branches/auto_libjit (6 files):
Applying to auto_libjit branch two (of three) patches submitted by plobsing in

lacking libjit.)
23:56
23:57 TiMBuS joined