half-pie" released! | Test CallSignature PMC | pcc_reapply branch still needs your love! trac.parrot.org/parrot/wiki/Callin...nsOverview
Set by moderator on 6 October 2009.
00:05 kid51 joined 00:23 quek joined
dalek TT #1104 created by jkeenan++: Correct erroneous reference in docs to Number PMC 00:27
TT #952 closed by jkeenan++: pcc_arg_unify branch fails tests. 00:56
01:10 quek left, rhr joined 01:17 rhr joined 02:35 janus joined 02:53 rhr joined
dalek rrot: r41829 | mikehh++ | branches/pcc_reapply/src/extend.c:
codetest fix - space between C keyword and open parenthesis
03:14
03:17 rhr joined
cotto make test in pcc_reapply keeps getting stuck on t/op/gc.t 03:23
s/test/coretest/ 03:24
dalek rrot: r41830 | mikehh++ | branches/pcc_reapply/t/src/extend.t:
remove TODO on passing test (passes on amd64 and i386)
03:27
03:29 ash_ joined
mikehh cotto: what platform? 03:29
cotto ubuntu x86 03:30
mikehh odd - I just ran some tests there and they seemed to be ok - but I am back on amd64 at the moment 03:32
cotto meh. I'm sure it'll get fixed. It's not like I'm not running the most common platform ever.
bacek_at_work buildframes=0 ftw
cotto let's see if that helps 03:34
all better with that change
clock? 03:35
purl cotto: LAX: Sun 8:35pm PDT / CHI: Sun 10:35pm CDT / NYC: Sun 11:35pm EDT / LON: Mon 4:35am BST / BER: Mon 5:35am CEST / IND: Mon 9:05am IST / TOK: Mon 12:35pm JST / SYD: Mon 2:35pm EST /
mikehh cotto: yes - I forgot to mention that - I ran make -j test TEST_JOBS=5 with that config option on Ubuntu 9.04 i386
I am using my normal build options om amd64 03:36
on
cotto It's nice to see only 15 failing tests on that branch. 03:37
It'll be even nicer to see 0.
mikehh see smolder #28908 (kid51 on i386) and #28910 (mikehh on amd64) that is the normal make smoke 03:39
need to take a break now - will be back later with some tests on Ubuntu 9.10 beta 03:46
04:15 payload joined 04:29 masak joined
Tene Looks like the next item to address in pcc branch is te commented block in src/pmc/continuation.pmc +248 04:34
chromatic t/op/calling.t #47 is a .tailcall problem. 05:15
Tailcall into NCI, that is.
05:20 bacek_at_work joined
chromatic Tailcall into NCI should work once Continuation's invoke() works correctly, by my reading of NCI. 05:20
Tene Yes. 05:27
05:28 JimmyZ joined
chromatic t/op/calling.t #58 looks the most promising. 05:32
The old PCC stored where the continuation's caller wanted its results; should the new PCC store the CallSignature? 05:37
05:40 TiMBuS joined
dukeleto 'ello 05:41
06:02 uniejo joined 06:05 kurahaupo joined 06:08 jrtayloriv joined
dalek rrot-plumage: 4053ee7 | leto++ | :
[t] Make sanity.t use Glue.pbc instead of Glue.pir
06:13
shorten dalek's url is at xrl.us/bfrxuf
japhb Infinoid, dukeleto, it looks like parrot-plumage needs to know about remapping leto/dukeleto for karma. Is that just a matter of fixing Parrot's CREDITS? 06:17
dukeleto japhb: i am not sure 06:49
07:07 fperrad joined 07:36 quek joined
chromatic wishes CallSignature had better tests on the pcc_optimize_sig branch. 07:36
dukeleto chromatic: should I add the new tests from pcc_reapply to pcc_optimize_sig ? 07:46
chromatic How many tests are there? The file on the pcc_optimize_sig branch has 7. 07:47
dukeleto i will check 07:50
07:56 bacek joined
dukeleto msg chromatic they have exactly the same callsignature tests. what kinds of tests do you need? 07:58
purl Message for chromatic stored.
dukeleto we have some tests failing in trunk on Scientific Linux: smolder.plusthree.com/app/public_pr...ails/28916 08:09
shorten dukeleto's url is at xrl.us/bfryba
bacek dukeleto: looks like conflict with installed parrot 08:15
dukeleto bacek: i hate that 08:21
bacek dukeleto: was I right?
dukeleto bacek: sounds probable, but I am hitting the sack. will check it out tomorrow 08:22
bacek dukeleto: ok
dukeleto bacek: happy hacking
dalek rrot: r41831 | dukeleto++ | branches/pcc_reapply/t/pmc/callsignature.t:
[t] Fix a bug in some of the CallSignature tests
08:27
08:28 quek left, quek joined 08:29 quek left
dalek rrot: r41832 | dukeleto++ | branches/pcc_reapply/t/pmc/callsignature.t:
[t] Add test for get_pmc in CallSignature and improve instantiation test
08:47
08:47 jrtayloriv joined
dalek rrot: r41833 | bacek++ | trunk/src/call/context.c:
[cage] Remove duplicated Context.current_sub initialisation.
09:09
09:46 slavorgn joined 10:04 donaldh joined 10:29 mokurai left
Infinoid japhb: Yep. 10:36
japhb: but, uh... it actually worked? When I left it, it seemed non-functional 10:38
11:16 payload joined 11:35 kid51 joined 12:09 whiteknight joined
whiteknight good morning Parrot 12:11
kid51 good morning whiteknight 12:20
Did you get moved successfully?
whiteknight kid51: yes, Thanks!
I'm very sore, but the work is done 12:21
kid51 off to $job
12:26 JimmyZ joined 12:41 uniejo joined
Coke waves from the correct timezone. 12:45
whiteknight good morning Coke 13:20
13:37 mikehh joined 13:48 payload joined
Coke is it me, or did I used to get a test summary with a number of failed tests. 13:57
whiteknight Coke: Yes! I think I've been missing that too 14:02
Coke I just watned to know how many failing tests were left, and it's gone. 14:05
dalek p-rx: a8a7999 | pmichaud++ | src/ (4 files):
Code to create and capture submatches; Match objects built lazily.
14:12
p-rx: a0c9610 | pmichaud++ | (8 files):
Refactor subrule matching a bit.

  <alpha> matches underscore.
Update specialized dump_str method to check for new Match objects.
shorten dalek's url is at xrl.us/bfry6p
shorten dalek's url is at xrl.us/bfry6t
dalek p-rx: 7155d02 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Add first (incomplete) version of <+subrule>.
shorten dalek's url is at xrl.us/bfry6x
dalek p-rx: 90293e5 | pmichaud++ | (2 files):
Add some more built-in regexes (char classes, word boundaries, etc.).
shorten dalek's url is at xrl.us/bfry6z
14:13 Psyche^ joined 14:14 edgar joined
Coke anyone with commit bits to rakudo/rakudo on github here? 14:24
moritz raises hand
Coke moritz: I would like to have something similar setup for partcl/partcl 14:28
moritz Coke: just register a user partcl on github
Coke moritz: done. repo is already there.
(dukeleto++)
but I am still a git newbie. so if I want to work in coke/partcl, and get my commits back, is there a how to guide for this sort of arrangement? 14:29
er, push my commits back to partcl/partcl
moritz when you're logged in as partcl, you can simply fork the project from coke
and then in your local checkout, edit .git/config 14:30
and change the 'coke' part in the URL to 'partcl'
purl moritz: that doesn't look right
moritz git pull
purl git pull is probably not slow.
moritz done
Coke that seems like a lot of work. =-) 14:31
is rakudo's version control workflow documented somewhere?
moritz that's something you do once
Coke ... Then I am confused. 14:32
moritz and then you just always push to and pull from the partcl/partcl repo
Coke finds wiki.github.com/rakudo/rakudo/frews...d-workflow
moritz: does github.com/partcl/partcl change your instructions at all? 14:34
(there is no coke/partcl yet.)
moritz Coke: sorry, I was using wrong assumptions
so
you log in as partcl, and add coke and the others as committers 14:35
then you log in as coke
and 'git clone $your_clone_url'
hack hack hack
git commit
git push
purl git push is much faster than svn ci or svk push
Coke committer == "repository collaborators" ? 14:38
Permission denied (publickey). 14:40
(on git clone git@github.com:partcl/partcl.git
oh. s/git@/coke@/ ?
adding a public key... 14:41
cd .ssh 14:42
ls
bah
szbalint you didn't do "cat id_rsa" at least :) 14:43
Coke ok. I forked partcl/partcl to coke/partcl at some point. if I'm pushing straight to partcl/partcl, I don't need coke/partcl. is there a way to delete it? (I see nothing obvious...) 14:48
bah. still getting permissions errors, even trying to clone coke/partcl as coke. 14:49
(ok, git@ is a literal ...) 14:51
dalek rtcl: 65f57fb | coke++ | README:
Note new code repository.
14:59
shorten dalek's url is at xrl.us/bfrzc5
Coke moritz++ 15:02
dukeleto++ 15:03
15:08 rdice joined
Coke finds the "delete repository" button. 15:20
15:20 plobsing joined
Coke waits for step 3. Profit. 15:21
15:30 jsut_ joined
dalek rtcl: 0d695c5 | coke++ | CREDITS:
Mention dukeleto in CREDITS
15:32
shorten dalek's url is at xrl.us/bfrzh2 15:33
dukeleto 'ello 16:26
whiteknight hello duke 16:31
dukeleto whiteknight: how goes it? 16:32
whiteknight it goes well enough
I'm tired, hungry, sore, angry, and a little ugly. But other then that, doing swell 16:33
you? 16:34
purl well, you is very bed in engrish too
dukeleto whiteknight: still waking up 16:38
purl waking up is probably hard to do or a strange reason to die
whiteknight yeah, i guess it is a strange reason to di 16:42
die
Coke tries to setup github to email commit messages to partcl-commits@googlegroups.com and get s... nothing. 16:56
cotto_work Coke, do you have to give github access to the Google group?
16:59 payload1 joined
dukeleto Coke: mornin' 17:05
Coke cotto_work: anyone can post to the group, first-post moderated. 17:11
dukeleto: hio
dukeleto++ 17:12
so, seems like we're up and running with github.
didn't really need to do much after your initial setup, just some personal bookkeeping.
seen mdiep?
purl mdiep was last seen on #parrot 266 days, 8 hours, 46 minutes and 7 seconds ago, saying: err... bed [Jan 19 08:18:08 2009]
Coke (that's a long nap.)
moritz some people do have healthy sleep 17:13
Coke (email) I changed the email address to will@coleda.com, tested, it sent the message.
switched it back, nothing.
cotto_work: actually, you might be right. 17:14
dukeleto Coke: yes, partcl should be mostly setup on github. let me know if there is anything else you need help with
Coke dukeleto: Any interest in writing code? =-) 17:15
I'm trying to decide if I should bail on googlecode completely. 17:16
dukeleto Coke: what kind of code? 17:17
Coke: have you thought about migrating to the github wiki/issue tracker?
Coke cotto_work: any /member/ can send, not any one.
fixed.
cotto++ 17:18
dukeleto: 13:16 <@Coke> I'm trying to decide if I should bail on googlecode completely.
yes.
not sure, though.
looks like the googlecode ticketing is a little more full featured. 17:20
but unification is good.
dukeleto Coke: what code do you need to bail on googlecode? 17:22
Coke dukeleto: (write code) No, I meant actual "writing code for partcl" there. =-) 17:23
part of my "squeeze contributors dry" plan!
Is there a compelling reason to move the wiki and the issue tracker? 17:27
(aside from "single point of contact" ?)
dukeleto Coke: not really. 17:32
Coke: is there a list of beginner tasks that need doing in partcl? 17:33
Coke dukeleto: no, but I can lob one or two at you. 17:37
er, yes.
code.google.com/p/partcl/issues/list, sort by difficulty! 17:38
(I already did this once!)
hey, didn't you implement rand/srand in parrot?
code.google.com/p/partcl/issues/detail?id=89 might be an easy one to start with.
dukeleto Coke: i refactored rand/srand into dynops 17:40
Coke: checking that out now
Coke: that should be reasonably simple. does tcl have both floating point and integer rand() functions, or what? 17:41
Coke www.tcl.tk/man/tcl8.5/TclCmd/mathfunc.htm - rand returns (0,1) 17:42
(and srand takes an int.)
dukeleto Coke: that makes it easy. all we have to do is call the parrot dynop, no other pre/post processing needed
Coke dukeleto: I added some notes to the ticket. 17:45
17:46 chromatic joined
Coke chromatic: hio 17:48
dukeleto++ 17:51
chromatic morning/afternoon 17:52
dukeleto chromatic: happy sunny day
chromatic Maybe where you are. 17:54
Speaking of CallSignature tests, I need tests for all vtable entries that PCC exercises.
dukeleto chromatic: it is sunny at the airport. not so in Hillsboro?
chromatic If PCC pushes I, N, P, S onto the CallSignature array, great. If it pops/shifts/unshifts them from it, great. 17:55
dukeleto, it's Novembercast here.
dukeleto chromatic: i added a callsig test to pcc_reapply last night
chromatic I'm copying behavior from Capture to CallSignature, but I'm not sure we need all of it. 17:56
dukeleto chromatic: can you nopaste an example of code that you want tested?
chromatic The only reason CallSignature extends Capture is to contain an array and a hash.
I don't have a good example; I'd have to read all of pcc to figure out everything that the CallSignature must do. I'm trolling for someone like allison, Tene, bacek, whomever who's worked on it lately to rattle off a list of likely candidates. 17:57
Tene chromatic: the best way to get callsignature tests is to get the :call_sig param and arg attribute working, letting you pass a literal callsignature pmc into and out of a call. 18:02
chromatic I don't follow.
Tene to test the pcc stuff.
chromatic I don't want to test PCC, I want to test the CallSignature.
I'm reimplementing a CallSignature PMC that doesn't inherit from Capture. 18:03
Coke or, test it directly, not indirectly.
Tene It's just capture + a few thin wrappers around some attributes.
Coke ?
18:04 bacek joined
dukeleto chromatic: can you tell me how to test the uncovered code at tapir2.ro.vutbr.cz/cover/cover-resu...e-pmc.html ? 18:05
shorten dukeleto's url is at xrl.us/bfrz7a
chromatic I know what it is, but I don't know which parts of Capture it uses.
If it's *everything*, that's one thing. If it's "only pushing and popping the contents of typed registers", that's another thing. 18:06
Tene fill_{params,results} uses keyed access and elements. build_sig uses push. 18:08
chromatic How about indexed access? 18:09
Tene Yes. 18:10
I somehow thought that was implied by 'keyed access', but you're right, it's not.
I don't mean that to be exhaustive, but that's what I've seen in the parts I've worked on. 18:11
chromatic get_keyed, set_keyed I presume?
How about set_FOO_keyed_int? 18:12
Tene Yes, bot.
both
chromatic dukeleto, I could use tests for all of those. 18:13
For each register type.
Tene I think that 'exists' is used at least once. 18:14
chromatic exists_keyed or exists_keyed_int or both? 18:15
Tene chromatic: the plan is to allow direct access to the callsig if requested, and I thought that we wanted to expose the entire capture interface to users, yes? 18:16
So shouldn't all of the capture interface be tested?
chromatic I don't know the intent of CallSignature.
I can't tell if it extends Capture for expedience or because of some grand plan of exposing a rich interface. 18:17
Tene one of the things rakudo needs it for is to do its own argument handling, by marking a parameter as :call_sig.
Instead of filling params out of it, just pass the whole thing off to userspace.
chromatic Sure. I can extend it later if necessary.
jonathan Basically, beyond that, Rakudo just wants a good, fast way to get the pos args and named args out of there for processing, probably 18:19
Where good = spec'd :-) 18:20
Tene It seems a little weird to me to want to provide some of the positional vtables, but not the rest, or some of the named vtables, but not others. 18:21
I think I'm missing something.
afk driving to work.
chromatic My goal is to get the minimal CallSignature rewrite available as soon as possible, as accurate as possible, to reclaim as much speed as possible by avoiding creating 2 + one for each argument/parameter GCables.
Tene Okay.
I understand now. Thanks. 18:22
(One option would be to just implement those, and see what fails when you try it. ;) )
rly afk now
chromatic Lots!
18:29 joeri joined
Coke Is there a standard way to show what revision we're working against in git? 18:38
(git log | head -1 seems like cheating.)
18:38 iblechbot joined
dukeleto Coke: git log -1 shows the last commit 18:41
Coke: git rev-parse master shows you the sha1 of the master branch 18:43
Coke: git rev-parse HEAD gives the sha1 of where ever the current branch tip is
bacek Good morning 18:45
cotto_work clock?
purl cotto_work: LAX: Mon 11:45am PDT / CHI: Mon 1:45pm CDT / NYC: Mon 2:45pm EDT / LON: Mon 7:45pm BST / BER: Mon 8:45pm CEST / IND: Tue 12:15am IST / TOK: Tue 3:45am JST / SYD: Tue 5:45am EST /
bacek cotto_work: it is not eve 6AM here... 18:46
cotto_work good morning to you, sleepless bacek
bacek even
dukeleto bacek: o hai
bacek dukeleto: g'day 18:47
Coke dukeleto: so if git rev-parse master NE git rev-parse HEAD, I have local mods?
dukeleto Coke: it could also mean you are on a different branch 18:48
Coke: what are you trying to figure out? git status will tell you if you have local mods 18:49
Coke dukeleto: updating the build/testing scripts so they work with git instead of svn/git-svn 18:50
(I'm not even sure we build straight out of git now.)
dukeleto Coke: yes, those probably need to be updated 18:52
Coke: does partcl send smolder reports? if so, we should update it to add sha1's. i have done it before, it ain't hard 18:53
Coke dukeleto: yes. 18:54
added a generic ticket to partcl (#115) for this.
18:59 szabgab joined
dukeleto Coke: i can probably work on partcl+github stuff tomorrow. i have family in town and won't do much hacking today 19:04
Coke roger roger. I will try to fix it up myself in the meantime, time permitting.
dukeleto Coke: this should give you enough example/inspiration : github.com/leto/math--gsl/blob/mast...er_mathgsl 19:06
shorten dukeleto's url is at xrl.us/bfr2hc
19:40 szabgab_ joined 19:45 japhb joined
dalek p-rx: a1f5fa1 | pmichaud++ | src/ (2 files):
Initial code for detecting capture arrays.
19:56
shorten dalek's url is at xrl.us/bfr2qx
dalek p-rx: 8a90013 | pmichaud++ | src/ (2 files):
Fully handle arrayed subcaptures.
shorten dalek's url is at xrl.us/bfr2qz
20:20 joeri left
dalek TT #1105 created by plobsing++: [PATCH] change to a libjit based frame builder 20:21
20:23 plobsing joined 20:32 payload joined
Coke plobsing: nifty. 20:33
plobsing thanks. 20:34
Coke Evaluating that is beyond my C knowledge, but I know we've had complaints about breakages using our existing buildframes in the pcc_reapply branch.
I wonder if the fact that we considering using llvm for jit-like things affects that patch. 20:35
chromatic Nope.
Any frame builder will have to change with pcc_reapply. 20:36
plobsing yeah, I still use the depracted functions. I'll look into updating these.
Coke plobsing: minor nit; you add .h's to src/frame_builder.c but don't list those in the root.in 20:37
(that'll break make -j)
plobsing what? 20:43
as far as I can tell, I removed included headers
chromatic They need to be dependencies of the src/frame_builder$(O) rule in the Makefile.
plobsing ok, fixing.
wait, isn't that $(GENERAL_H_FILES) ? 20:46
20:47 payload joined
chromatic The more specific we are in our dependencies, the less we have to rebuild. 20:48
Tene okay, making a little bit of progress on continuations.
You don't need to store the callsignature directly in the continuation, you can get it from the to_ctx with Parrot_pcc_get_signature 20:49
I'm trying to figure out where to get the rest of te stuff I need, though. 20:50
chromatic It might not be available yet.
Coke plobsing: if you removed them instead of adding them, my apologies. I might have misread the sense of the patch. 20:51
Tene I need to get the arguments passed to the continuation and feed them into the results instead.
Coke s/might have/probably/
Tene oh, I get them from the from_ctx, of course. 20:53
plobsing nope, you pointed out a fault, in both trunk and my patch. 20:55
21:08 Whiteknight joined
Tene Oh, this is going to be kinda ugly, I guess. 21:09
Oh, wait, maybe not. 21:10
Whiteknight TT #1105: Awesome
plobsing still working out a few kinks 21:11
Whiteknight kinks are fine, so long as all the code is mostly written 21:14
plobsing Tene: i've just updated the patch to have frame_builder$(O) only depend on directly included h files 21:16
Tene plobsing: Sorry if I confused you. I'm talking about something completely different. 21:17
plobsing oops, sorry, that should be Coke
Tene The last thing I need is what's passed as the raw_returns parameter to the pcc functions. In core.ops, this comes from raw_returns=CUR_OPCODE in set_returns and friends. I'm trying to figure out how to get this information from the invoke vtable of continuation.pmc. 21:24
This probably isn't quite right.
This might be the wrong way to do this. I have all of the args in a callsignature already. 21:25
I could cheat and save the raw_returns in the callsignature when it's built. 21:27
Let's see if that works...
Oh, no, I think I'd have to wrap it in a cpointer... ew 21:29
chromatic: I have a very evil continuation returns patch that only works for positional args... Willing to take a look at it? 21:44
dukeleto 21:49
dukeleto says oops
nopaste "tene" at 97.117.62.135 pasted "Probably evil hack to make positional returns work with continuations. Someone else please review this." (282 lines) at nopaste.snit.ch/18324 21:50
Tene It works, though. Kind of. t/op/calling_58.pir passes
t/op/calling_59.pir uses the same not-actually-correct thing that exceptions use, calling get_results *after* instead of before. 21:52
exception handlers, that is. 21:53
GeJ Good morning everyone 21:56
Tene hi GeJ
dukeleto GeJ: howdy 21:57
chromatic Tene, I had a feeling we'd have to write code like your patch. 22:14
Tene it might get a little bit better with some changes to the abstraction. 22:15
I'm also not confident that there isn't a better way. 22:16
22:17 kid51 joined
chromatic If continuations captured more of The Right Thing, it'd be easier. 22:19
Whiteknight urg, I obviously don't know enough about Continuations in Parrot 22:23
Tene: calling .get_results after is what we *should* have, eventually 22:24
but that's going to be a major refactor at some point down the right
Tene Whiteknight: Yes, that's right.
Whiteknight: all I meant was that that's currently not supported outside of a special case for exception handlers.
Whiteknight yeah
I don't even know how continuations pass arguments. /me needs to look at that 22:26
what all does .get_results do? Does it let you specify an entire argument list? 22:27
Tene Whiteknight: set_args before invoke
Whiteknight: yes 22:28
Whiteknight so I can do like .get_results($P0 :named('foo'), $P1 :optional, $I0 :opt_flag), etc?
Tene Yes.
Whiteknight awesome
Tene in PIR, that's: 22:29
kid51 Whiteknight: If we were to create a branch to evaluate plobsing's libjit patch, would that be beneficial?
Tene ($P0 :named('foo), ...) = foo(...)
22:32 Limbic_Region joined
Whiteknight kid51: might be, yes. He has a branch on github with it all, so experimentation has been proceeding already 22:34
I suggest we shouldn't merge anything really until after pcc_reapply lands
the channel topic is...broken 22:36
plobsing if this is only going to be applied after pcc_reapply, should I be patching against that?
kid51 plobsing: I tend to think not. IMHO, pcc_reapply still needs a lot of work. I think you were correct to branch from trunk. 22:39
Tene chromatic: any ideas about the parrot_config failure in pcc_reapply? 22:40
kid51 I thought of an SVN branch because your patch is very large -- 53 pages when printed out -- and I suspect people would like to have it viewable in the repository.
plobsing sorry about the large patch, but I can't think of a way of doing that incrementally 22:41
moderator Parrot 1.6.0 "half-pie" released! | Test CallSignature PMC | pcc_reapply branch still needs your love! trac.parrot.org/parrot/wiki/Callin...nsOverview 22:42
kid51 No, I agree that it made sense to do it all at once. 22:42
And I was glad to see that you included t/steps/*.t files, entries in Options.pm, etc. 22:43
22:43 mokurai joined
kid51 It was a very comprehensive job. 22:43
Whiteknight for pcc_reapply we are going to need to rip out the current framebuilder anyway 22:47
since the changes there don't work with the current one
so your patch actually gets smaller, because you're going to be adding a new frame builder, not replacing one
oh boy dinner! That's where I'm a viking! 22:51
cotto_work sounds spammy 22:58
22:59 rhr joined
Whiteknight actually, I'm the damn thundergod in my kitchen 22:59
23:00 patspam joined
Tene Man, now I want to go to dinner at WK's. 23:01
Whiteknight Tene: you ever come to town, I'll cook you up a masterpiece 23:02
Tene That just might happen.
I used to be in PHL all the time for work. 23:03
Whiteknight awesome
cotto_work generally stays on the left coast
Whiteknight anyway, speaking of masterpieces, what's the state of pcc_reapply today?
moritz the error summary fits on a 80x24 console ;-) 23:04
Tene parrot_config still dies, which is a big blocker for HLLs
I have a fix for continuation return passing, but it's kind of evil. 23:05
Whiteknight i saw that fix, it's not too evil
treed cotto: I may have already asked, but where on the left coast?
Tene Eh, I'll just commit it, and let people revert it if they object. 23:06
Whiteknight Go Tene! 23:08
Tene Whiteknight: if you could track down some information about the parrot_config failure, that would be great.
moritz bacek had a workaround for it... let me find the nopaste 23:09
dalek rrot: r41834 | tene++ | branches/pcc_reapply (3 files):
[pcc]

  * This is kind of evil; feel free to revert.
23:10
Whiteknight Tene: what's the failure? How do I recreate it?
Tene Whiteknight: ./parrot_config --dump
NPMCA
chromatic We don't need to rip out the current frame builder for pcc_reapply. We need to change it in three or four small places. 23:11
Whiteknight chromatic: I want to rip it out anyway. We can honestly have it replaced by 1.8 23:12
allison Tene: that's actually quite clean 23:13
Tene allison: it's going to require more work if we want to support named returns, though. 23:14
right now, it'll just fial badly if you try to pass nameds to a continuation
I expect
allison Tene: that's reasonable
Tene reasonable for now, at least. I expect to look at it again after we can switch the order after 2.0
allison Tene: does this cover both t/op/calling_59.pir and t/op/calling_58.pir? 23:15
Tene allison: calling_59 relies on the same "get_results after the call" that exception handlers require.
allison Tene: yes, this will be slimmed down after the order switch
Tene So it doesn't work.
calling_58 works, though.
allison Tene: okay, I have a partial fix for calling_59 that I haven't put in het 23:16
yet
(was away this evening)
Whiteknight I wonder why t/op/lexicals.t fails
chromatic Whiteknight, if it's impossible to fix in a couple of hours, that's one thing. Ripping it out now because we believe we can fix it by adding an external dependency by 1.8 is another thing.
Whiteknight the test all looks sane to me and doesn't look like it should be too too affected by PCC work
chromatic: I don't want to fix it. I want to kill it in a fire
Tene allison: it also doesn't fix calling_47 23:17
Whiteknight And we already have a built-in replacement in terms of compiled-in thunks
allison Tene: it calls fill_params, since at that point the logic is identical to fill_params
Tene: okay
chromatic I don't know how to characterize compiled-in thunks any better than a non-scalable, bloated hack that's grown out of hand and still doesn't work properly.
Whiteknight chromatic: I dont know how to characterize the current frame-builder any better then a non-scalable, bloated hack that's grown out of hand and still doesn't work properly 23:18
jonathan If we combine the two, is it twice as bad, or do they cancel each other out? ;-) 23:19
Whiteknight okay, maybe it's not as bloated, but it is definitely more buggy and less complete
jonathan: pure evil
purl pure evil is www.passport.com/Consumer/TermsOfUse.asp or The United Way.
chromatic Definitely not as bloated. 23:20
jonathan I think a frame-builder approach is the right way forward, but I'd not be surprised if the current one is less than awesome too.
chromatic Half of our startup time and half of our PMC cost goes to registering NCI thunks we almost *never* use. 23:21
jonathan OTOH, getting hold of the args should be easier after pcc_reapply.
chromatic: Really half? Ouch!
chromatic Half.
jonathan Wow.
Sounds like NCI thunks are what needs killing with fire. ;-)
Whiteknight chromatic: nobody wants NCI thunks to stay, but I'm saying we can replace the frame builder with speed and gusto 23:22
chromatic Static thunks, yes.
Whiteknight we can have a libJIT and an LLVM solution in trunk by 1.8
cotto_work treed, redmond, WA
jonathan chromatic: Yes, that's what I meant.
chromatic Here's my point though.
treed Ah, that's right.
chromatic We have to update any extant frame builders for pcc_reapply *anyway*. 23:23
To my knowledge, no one has done any work on updating any of them yet.
We don't know what it takes.
Whiteknight chromatic: I would rather update the right solution then update the wrong solution
and a portable frame builder improves our startup time on all platforms
chromatic That means 1) I can't say with certainty "It's trivial to update the extant frame builder" and 2) you can't say with certainty "These will definitely land for 1.8". 23:24
23:24 Themeruta joined
Whiteknight I'mnot sure what you mean by "no one has done any work on updating any of them yet" 23:25
any of what?
chromatic How many of the existing or proposed frame builders work on pcc_reapply?
Whiteknight chromatic: I don't see why any of them wouldn't work 23:26
it's going to be much easier to make them work in any case. NCI functions don't use :optional, :opt_flag, :named. :slurpy, etc
chromatic No one has tried, as far as I know.
We don't know how much work it is. 23:27
Whiteknight chromatic: that's because the current frame builder is shit-ugly and nobody would be caught dead doing it
chromatic I updated it for the Context branch.
Whiteknight we want people to do it, let them to it right
chromatic: well you're a better man then I am. I wouldn't do it
chromatic You're talking about regressing on a very common platform for 1.7 because you don't like how the code looks.
If we're going to regress on a very common platform, I want a better reason. 23:28
Whiteknight so lets pull it out right after 1.7 and have the replacement in for 1.8
Tene Whiteknight: We want to keep the pcc branch as minimal as possible and get it merged ASAP.
Whiteknight right, I want that too
Tene So let's *try* fixing the frame builder. 23:29
If that attempt fails badly, or whatever, then we can address removing it.
If we remove it, the fallback is that we can only use the precompiled thunks.
Whiteknight Okay, I'll strike a bargain: I'll personally fix the frame builder on pcc_reapply, regardless of the time commitment, before the merge. In return, the frame builder comes out on tuesday afternoon 23:30
Tene So first we *try* updating it. Until we try, we really don't know. If we *can* get it updated without too much pain, then we should merge it as is.
chromatic Why does the frame builder come out without a working replacement?
Whiteknight because I hate it and those are my terms
jonathan If replacing it will be so quick after the branch is merged, why not have a short lived branch to replace it? 23:31
Whiteknight you're free to spend your tuits in a different way, if you see fit
jonathan That way, it doesn't disrupt those who are using it.
allison Tene: are you getting a compile error in PGE?
Whiteknight but that's the price of my tuits on this project
Tene allison: dunno, lemme check.
chromatic Okay, that's fair. If no one can or wants to fix it, it stays disabled. 23:32
Tene allison: yes! segfault!
allison: did I cause that? Feel free to revert my commit.
allison Tene: okay, wasn't sure if it was me
Tene: just need to wrap the access to 'raw_args' in an "if(!PMC_IS_NULL(from_obj))" 23:33
Tene: in Continuation's invoke
Whiteknight I'll just reiterate: If the frame builder comes out on Tuesday afternoon, there will be a replacement in by 1.8 with support for both libJIT and LLVM.
not a "maybe", it WILL happen
cause and effect
allison Tene: oh, also the call to fill_returns_from_continuation 23:34
Tene: (I'd commit it, but I have other code in that file)
chromatic git stash
purl git stash is probably Stash the changes in a dirty working directory away
allison Tene: well, it's only one line, I'll delete that and commit the quick fix 23:35
Tene chromatic: you mean git add -p
chromatic Probably, but simplicity trumps here. 23:36
kurahaupo I've been thinking about different array implementations and their trade-offs, which lead me to wonder about changing the implementation mid-flight as it were. 23:41
What are the risks and caveats of pivoting the vtable of a PMC "in flight"? Other than making sure that both object-types have the same sizeof, and that all the new fields are set up sensibly based on the old ones, what else needs to be taken care of?
Whiteknight what do you mean "in flight"? 23:42
kurahaupo In the middle of the C function that implements "push", for instance.
Whiteknight have a patch or something so I can see what you are talking about? 23:45
23:47 rhr joined
jonathan kurahaupo: Main risk I can see is if the PMC was to be shared and there wasn't locks taken to make sure nothing else was in another v-table function... 23:47
kurahaupo This came from reading last month's parrot-dev discussion on auto-converting fixed arrays to resizable ones. But I'm thinking of implementing "SmallArray", where the values are all stored in the PMC, and "LargeArray" where they're stored in a separate chunk of memory. The point is that using arrays as tuples doesn't get penalized by the space overhead for supporting resizing efficiently, so one can implement tensor arithmetic efficiently. 23:48
dalek rrot: r41835 | allison++ | branches/pcc_reapply/src/pmc/continuation.pmc:
[pcc] Quick fix for continuation call, only do the argument passing when the
kurahaupo So I'm focussed on arrays *other* than arrays-of-PMCs. 23:49
Think: laying down the floats in memory so that my GPU can work on them for me. 23:50
Whiteknight converting PMCs from one type to another isn't usually as easy as just switching vtables 23:51
kurahaupo I guessed that might be the case.
Whiteknight you would need to reallocate the ATTRs structure if they are different sizes 23:52
kurahaupo What does "shared" mean in this context? Like threads, or just generally multiple references?
Tene the former 23:53
jonathan kurahaupo: I meant threads.
Since PMCs never get moved (e.g. by the GC) then multiple references won't be a problem.
Not much is doing threading in Parrot yet though.
kurahaupo I would be looking to make the threshhold between "SmallArray" and "LargeArray" be such that the elements of SmallArray were the same size as the ATTR's needed for LargeArray. 23:54
bacek_at_work jonathan, they are not moved for now. I hope we will have compacting GC in future.
kurahaupo Is there a thread-lock primative, or is it a case of replacing the vtable with "everyone else spin while I work on completing this"?
Being able to change the vtable would probably be essential to implementing a compacting GC? 23:55
Are we guaranteed that writing one memory word to replace the vtable pointer is threadsafe on all architectures of interest? 23:56
jonathan kurahaupo: I'm not sure what the Right Way to handle that lot is. I think the share vtable method may actually by default cause a lock to be required for the whole PMC and thus any vtable method called takes it. 23:58
So that'd make such a thing safe I guess. But in that case you'd probably have to make sure you swapped in an updated shared version of the vtable.
I'm hazy on how that lot works these days - sorry.