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.
00:06 patspam joined
dalek rrot: r41893 | jkeenan++ | branches/auto_libjit/config/auto/frames.pm:
Applying 3rd patch submitted by plobsing in trac.parrot.org/parrot/ticket/1105. This may not be the ultimate solution -- it causes t/steps/auto/frames-01.t to fail -- but it builds and passes all tests in 'make test'.
00:13
00:16 bacek joined
darbelo ls -a 00:16
Sorry, wrong window.
00:52 darbelo left 01:22 hercynium joined
Whiteknight darbelo: pong 01:23
01:54 TiMBuS joined 02:01 plobsing joined
plobsing hi 02:04
purl hello, plobsing.
plobsing I see the auto_libjit branch is passing on x86 linux. Any chance we could get x86 linux with libjit installed to test? 02:05
Whiteknight hello plobsing 02:06
pmichaud fair warning: dalek flood imminent 02:07
Whiteknight i dont have an x86/linux machine myself. Although I can try on x64
dalek p-rx: f44ecaf | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get PAST::Node.node update.
02:08
shorten dalek's url is at xrl.us/bfss7t
dalek p-rx: 4c7671c | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Add methodop arguments to named assertions.
shorten dalek's url is at xrl.us/bfss7v
dalek p-rx: 88773ed | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get PAST::Node.node bugfix.
shorten dalek's url is at xrl.us/bfss7x
dalek p-rx: e335cf9 | pmichaud++ | (2 files):
Refactor HLLCompiler overload into a cheat file.
shorten dalek's url is at xrl.us/bfss7z
dalek p-rx: 88f1d40 | pmichaud++ | src/ (2 files):
Switch P6Regex to use protoobjects for parsegrammar and parseactions.

it right now).
p-rx: 6bccdbe | pmichaud++ | src/Regex/P6Grammar.pir:
Switch P6Grammar to use protoobjects for parsegrammar and parseactions .
shorten dalek's url is at xrl.us/bfss73
dalek's url is at xrl.us/bfss75
dalek p-rx: 2f2704b | pmichaud++ | src/Regex/P6Grammar.pir:
Switch P6Grammar to use HLL::Compiler.
shorten dalek's url is at xrl.us/bfss77
dalek p-rx: 6c418a8 | pmichaud++ | src/ (3 files):
More bootstrap refactoring.
shorten dalek's url is at xrl.us/bfss79
dalek p-rx: 2c73bfa | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Handle capnames of subcaptures properly.
shorten dalek's url is at xrl.us/bfss8b
dalek p-rx: 1239272 | pmichaud++ | src/Regex/P6 (2 files):
Some whitespace handling issues.
shorten dalek's url is at xrl.us/bfss8d
plobsing Whiteknight: it should pass on x64 without libjit. 02:09
Whiteknight: I still need to figure out how to make it work without alloca before it'll work on x64 with libjit 02:10
Whiteknight ok
I'm headed to bed now, I'll look at it in the morning 02:12
goodnight
mikehh msg kid51: No - how do you change it back 02:33
purl Message for kid51 stored.
02:35 janus joined
TiMBuS plobsing, did you manage to make a non-jit nci for x64? 03:07
kid51 mikehh: edit the Description 03:09
dalek rrot: r41894 | jkeenan++ | branches/auto_libjit (2 files):
t/steps/auto/frames-01.t: Conform to new code in internal method

config/auto/frames.pm: Delete 3 statements no longer needed.
03:14
03:16 mikehh joined
mikehh messages 03:16
kid51 mikehh: You can edit a TT's Description. It's much like making a post. 03:17
The layout of the Trac page during editing is a bit clumsy. More than once, I have edited a ticket's Description when I was trying to make a new post -- and v.v. 03:18
mikehh kid51: ok will do
kid51 must sleep 03:21
purl $kid51->sleep(8 * 3600);
plobsing Timbus, no. What I meant was that the branch should be no different from trunk on all platforms when there is no JIT present 03:28
TiMBuS oh 03:29
thats a pity, i wanted to see a working non-jit nci implementation. i tried to make one but ended up getting annoyed at it 03:30
plobsing my asm-fu is too weak for that 03:33
TiMBuS i was told that there would need to be a non-jit style nci for people using SELinux, as it prevents executable memory being allocated. apparently libffi gets around this though 03:42
on that note it looks like libffi does exactly what we want it to and now im wondering why parrot isnt using it 03:43
plobsing reads up on libffi...
yeah, AFAICT, libffi provides what parrot needs. 03:51
although if you have JIT engine, it would seem kind of silly to depend on libffi for nci 03:52
TiMBuS it would be a nice fallback though 03:53
plobsing yes very much so. I'm on x86_64 so I feel the pain of not having complete nci without JIT 03:55
03:57 rhr joined 04:08 rhr joined
cotto libffi seems like a good highly portable fallback 04:14
04:25 theory joined
mikehh All tests PASS (pre/post-config, smoke (#29116), fulltest) at r41894 - Ubuntu 9.04 amd64 04:52
06:10 chromatic joined 06:44 desertm4x joined 06:55 jsut joined
chromatic Aha. 06:55
CallSignature doesn't currently use get_pointer/set_pointer. 06:56
We can hijack those vtable entries to pass it the returns information. 06:57
We'll need to tell it somehow whether it's pulling the pointers from a context or from varargs, but that's easy enough.
Tene sounds reasonable 06:59
chromatic We might not even have to walk the arrays until we do the assignments. 07:00
Do the return values get set anywhere besides fill_results, Tene? 07:02
Tene No.
chromatic Great! 07:05
The only remaining question is the interface we want for setting returns. 07:06
VTABLE entries on the CallSignature
?
Iterating over get_pointer in a loop?
A separate data structure?
Grab it out of CallSig with a macro? 07:07
I'm going to ponder this for a bit.
I'll backlog if you have feedback.
07:08 fperrad joined 07:38 iblechbot joined 08:08 Ron joined 08:23 Ron_ joined 09:16 mokurai left 09:17 Khisanth joined 09:18 masak joined
dalek p-rx: 9e137f5 | pmichaud++ | build/ (4 files):
A few final bootstrap pieces.
09:22
shorten dalek's url is at xrl.us/bfst3b
dalek p-rx: 8439afd | pmichaud++ | (8 files):
Complete parse bootstrapping of P6Regex library -- PGE is no
shorten dalek's url is at xrl.us/bfst3d
dalek p-rx: d561f7f | pmichaud++ | (4 files):
More build cleanups -- remove references to PGE libraries and code.
shorten dalek's url is at xrl.us/bfst3f
dalek p-rx: ddf1fa8 | pmichaud++ | src/stage0/P6 (2 files):
Update the stage0 compiler files.
shorten dalek's url is at xrl.us/bfst3h
dalek p-rx: 1e495f8 | pmichaud++ | src/cheats/PGE.pir:
Remove no-longer-needed cheats for PGE.
shorten dalek's url is at xrl.us/bfst3j
10:00 HG` joined 10:20 desertm4x_ joined 10:37 joeri joined 11:31 Whiteknight joined
Whiteknight good morning parrot 11:37
Infinoid good morning Whiteknight 12:14
Whiteknight hello Infinoid 12:16
12:26 bacek joined 12:39 kid51 joined
dalek rrot: r41895 | whiteknight++ | branches/pcc_reapply (3 files):
[pcc] start fixing tailcalls. This resolves 1 subtest failure in t/op/calling.t and has the potential to fix others with some tweaks. Tailcalls should share information about expected returns with the parent call frame.
12:40
Whiteknight down to 8 failing coretests 12:48
t/op/calling_59.pir seems to be having a problem with .get_results on a continuation 12:53
12:58 bacek joined
Whiteknight same with t/op/calling_61.pir. Not getting results from a continuation 12:58
bacek Whiteknight: I fixed it :) 13:22
bacek@icering:~/src/parrot$ prove t/op/calling.t 13:23
t/op/calling....ok
All tests successful.
Files=1, Tests=95, 4 wallclock secs ( 0.07 usr 0.01 sys + 2.11 cusr 1.01 csys = 3.20 CPU)
Result: PASS
purl Time to write more tests!
bacek botsnack
purl thanks bacek :)
Whiteknight how did you fix it?
bacek r41896 13:25
dalek rrot: r41896 | bacek++ | branches/pcc_reapply/src/pmc/continuation.pmc:
Build result signature in Continuation.invoke.
13:26
bacek hm... I did expect that lexicals.t was fixed as well... 13:27
dalek rrot: r41897 | jonathan++ | trunk (2 files):
[core] Rakudo needs to be able to control lexical/closure semantics from within its binder, meaning we need to be able to call Parrot_capture_lex. Make this possible, since it seems there's no other way to get at this functionality that's in the existing API.
13:29
Whiteknight 6 coretest failures! Awesome 13:32
dalek rrot: r41898 | bacek++ | branches/pcc_reapply/src/call/args.c:
[cage] Fix few compiler warnings.
bacek Whiteknight: actually more if you'll count coroutine failures as 5. 13:33
Whiteknight I haven't been looking at the failures in t/library/* 13:34
but yes, we're down
dalek rrot: r41899 | jkeenan++ | branches/auto_libjit (5 files):
src/frame_builder_libjit.c and src/frame_builder_libjit.h are generated files

  trac.parrot.org/parrot/ticket/1105.
13:36
Whiteknight I think I might have the failure in codestring.t figured out 13:39
bacek Whiteknight: it passing on my box
Whiteknight bacek: you on x86, or x64?
bacek x86
Whiteknight the problem is a number not sign extending correctly
so -1 turns into 0xFFFFFFFF on my box, when it should be 0xFFFFFFFFFFFFFFFF 13:40
but I can fix that with a simple cast 13:49
5 coretest failures 13:57
bacek I found problem with threads.
'@' in signature.
Whiteknight I already fixed that I thought
bacek Fix coming
dalek rrot: r41900 | whiteknight++ | branches/pcc_reapply/lib/Parrot/Pmc2c/PCCMETHOD.pm:
[pcc] for some reason values are not being properly sign-extended on x64 without a cast. So, add in explicit casts on returns from variadic arg lists to make sure things are right
Whiteknight maybe I didn't fix al of it 13:58
bacek src/pmc/parrotthread.pmc, init
Whiteknight ah shoot, I do see that now 13:59
I fixed "@" in the CI thunk builder 14:00
bacek yeah 14:01
14:01 cconstantine joined
bacek Whiteknight: are you sure that '@' is equivalent to 'Ps'? Shouldn't it be ":optional"? 14:03
Whiteknight yes, @ is slurpy array
14:05 fperrad joined
bacek looks like thread treat is as "optional slurpy array" 14:06
or handling of slurpy arrays in branch is slightly different.
Whiteknight slurpys are by definition optional 14:07
so :optional :slurpy does not make sense
14:07 Psyche^ joined
bacek looks like a bug in fill_params. 14:07
bacek@icering:~/src/parrot$ ./parrot t/pmc/threads_4.pir 14:08
ok 1
too few positional arguments: 3 passed, 4 (or more) expected
current instr.: 'main' pc 27 (t/pmc/threads_4.pir:12)
Whiteknight: can you try to replace '@' with 'Ps' in parrotthread.pmc? 14:10
Whiteknight I am doing it right now
actually, already done it, testing now
that causes more failures 14:11
masak should I report when I get failed assertions in Parrot_gc_mark_PMC_alive_fun? 14:12
because I just did.
Whiteknight masak: yes 14:13
you should report on any failed assertions
masak ok. I have now gotten three in a row. the seem fairly consistent. 14:14
s/the/they.
jonathan *sigh* Well done folks. Rakudo doesn't build against latest Parrot. 14:17
Just what I need when I'm trying to get something done.
I'll investigate after lunch.
Whiteknight who is even making changes to trunk anymore? 14:18
I haven't touched trunk in almost a month
jonathan Whiteknight: I'm really not sure...
Whiteknight: Hopefully that means there won't be too many revisions to hunt through. 14:19
Whiteknight hopefully
jonathan Well, if my fix is "just revert it", at least you know it won't be you that's offended. ;-)
I'll try and patch it up first if it looks straightforward though.
Anyway, lunch first... 14:20
Whiteknight bacek: I think the @ stays there. NCI signatures are handled a little differently
we haven't unified them yet
nopaste "kid51" at 70.85.31.226 pasted "Jonathan: recent trunk activity" (951 lines) at nopaste.snit.ch/18361 14:21
jonathan Hmm. 14:22
kid51: thanks 14:23
Bumped from 41796 and latest is 41897
So about 100 commits.
kid51 So, you last successfully built Rakudo at 41796? 14:24
jonathan kid51: That's the revision Rakudo has been building against, yes. 14:25
kid51: And I think the last Parrot revision I also built against.
kid51 Suggest seeing if you can build at 41833
jonathan kid51: It was a revision in which I fixed a segv. 14:26
Whiteknight how does rakudo build fail? 14:36
jonathan Hmm. pm did various nqp patches. I wonder if one of those might be to blame, given we die in NQP-related code 14:37
Whiteknight: Null PMC access in find_method()
current instr.: 'perl6;Perl6;Grammar;Actions;_block13'
Whiteknight urg
jonathan Whiteknight: My first thought was "eww, something really nasty", but now I notice the NQP and PAST patches (hadn't spotted them before) it's just possible they are the issue. 14:38
Whiteknight ok
jonathan Oh, we die *really* early on. 14:40
get_hll_global $P15, "P6metaclass"
$P15."new_class"("Perl6::Grammar::Actions")
That first line, it appears, hands back a Null 14:41
jonathan glances the revisions list
14:46 fperrad_ joined
jonathan pmichaud has tracked the issue down - thanks for input, everyone. 14:55
dalek rrot: r41901 | pmichaud++ | trunk/compilers/nqp/src/Grammar/Actions.pir:
[nqp]: Fix root_hll fetch problem introduced by pmichaud-- in r41871.
15:12
mikehh kid51: as a matter of interest how did you generate the list in nopaste.snit.ch/18361
kid51 mikehh: svn log . --limit=200 > file 15:13
mikehh kid51: ok thanks 15:14
15:18 davidfetter joined, theory joined
Whiteknight t/op/lexicals_28.pir is really too convoluted to do any real debugging 15:19
at any given breakpoint, I really don't know what is supposed to be happening 15:20
mikehh pcc_reapply branch - make smoke #29124 at r41900 - 10,756 ok, 9 failed, 262 todo, 560 skipped and 0 unexpectedly succeeded 15:23
that's 5 failed plus 4 missed in t/library/coroutine.t
on Ubuntu 9.04 amd64 15:24
got to reboot - bbiab 15:25
dalek kudo: 24ebf39 | masak++ | src/parser/signature.pm:
[src/parser/signature.pm] fixed class collision

   perl6_s1.pbc...
  <jnthn> masak: Ah, ouch
  <jnthn> masak: in src/parser/signature.pm, try this:
  <jnthn> -class Perl6::Compiler::Signature;
  <jnthn> +module Perl6::Compiler::Signature;
  <jnthn> (evil but seems to work)
  <masak> jnthn: aye, works.
  <jnthn> \\o/
  <jnthn> masak: Feel free to push.
  <masak> will do.
15:32
shorten dalek's url is at xrl.us/bfsuoy
masak sorry about the commit spamming.
it seemed like a good idea at the time... :/ 15:33
15:47 mikehh joined
nopaste "kid51" at 68.237.7.57 pasted "Page 10 of Parrot Developer's Guide: PIR suggests that this should work -- but it doesn't" (9 lines) at nopaste.snit.ch/18362 15:47
Whiteknight that should definitely not work, at least not without predeclaring $P0 15:53
kid51 But page 9 says that 'P' (PMC) is a register variable and "You need not predeclare register variables" 15:54
purl Sorry, I don't know 9's email address.
kid51 purl page purl 15:55
purl kid51: excuse me?
kid51 page kid51
purl page kid51
purl kid51: sorry...
kid51 But page kid51
jonathan But page 9 15:56
...odness
16:02 theory joined
Whiteknight not predeclare the register, you need to create an array type in that register 16:02
kid51 can you illustrate?
kid51 is trying to work his way through the book 16:03
Whiteknight $P0 = new 'ResizablePMCArray' 16:04
16:04 rdice joined
Whiteknight $P0[5] = "foo" 16:04
$S1 = $P0[5] 16:05
kid51 But isn't that what I have in my paste? 16:07
sorry 16:08
pmichaud you haven't initialized $P0 to anything.
16:09 rblasch__ joined
kid51 Yeah, I had overlooked WN's antepenultimate post 16:09
nopaste "kid51" at 68.237.7.57 pasted "PMC corrected" (6 lines) at nopaste.snit.ch/18363 16:10
Whiteknight antepenultimate: good word! 16:21
purl good word is "absurd"
16:33 mberends joined 16:42 davidfetter joined 17:00 whoppix joined 17:01 Austin joined
mikehh All tests PASS (pre/post-config, smoke (#29129), fulltest) at r41901 - Ubuntu 9.10 (beta) amd64 17:01
17:06 Whiteknight joined
Whiteknight the thread function appears to be getting the correct arguments in t/pmc/threads_4.pir, but the thread function is never getting run 17:15
but I don't have any more time to debug this for now. Maybe somebody else can make better sense of this then I can
17:23 theory joined
mikehh rakudo (24ebf39) builds on parrot r41910 - make test PASS / make spectest_smolder (up to r28807 -> #29130) FAIL - Ubuntu 9.10 (beta) amd64 17:23
rakudo - t/spec/S06-signature/optional.rakudo - Failed test: 12
bah - parrot r41901 17:24
rakudo - 35,259 ok, 1 failed, 519 todo, 6,880 skipped and 0 unexpectedly succeeded 17:26
wow that's 27859 passing tests - 79%+ 17:30
17:31 davidfetter joined
jonathan Ah, that failed test may well be one that was incorrect and that I corrected, but Rakudo doesn't handle in its corrected form. 17:32
17:32 Austin joined
mikehh posted to #rakudo too 17:36
well #perl6 17:37
the spectest_smolder run took 12 minutes 15 sec 17:40
jonathan mikehh: For Rakudo? 17:41
mikehh: I'm guessing running tests in parallel?
mikehh jonathan: well the entire run - from git pull, config, build test and spectest_smolder took 17 min 20 sec 17:43
and i presume so 17:44
of course that's not including building and testing parrot and sudo make install-dev 17:46
17:47 chromatic joined
mikehh jonathan: looking at the spectest_smolder report it reports a failure BUT that test has got a TODO on it - it didn't seem to pick that up 17:58
17:59 theory joined 18:10 payload joined 18:18 theory joined
Whiteknight got it 18:22
dalek rrot: r41902 | whiteknight++ | branches/pcc_reapply/t/pmc/threads.t:
[pcc] t/pmc/threads.t test was incorrect. It was calling set_string_native on the incoming args array (FPA) which is undefined. Threw unhandled exception which terminated the thread. Using a new local variable instead of the .param resolves this problem. One subtest fixed
18:23
Whiteknight down to 4 failing code tests 18:25
that's less then half of what it was when I woke up today
and threads_6.pir is easy to understand (though hard to fix) 18:28
dukeleto 'ello 18:29
Whiteknight when we call a thread, we pack all arguments up into a slurpy array PMC. However, we never unpack that slurpy back into individual arguments
chromatic Maybe we shouldn't slurpy pack. 18:30
Whiteknight my thoughts exactly
ParrotThread.run_clone() should create a CallSignature from it's arguments
and pass that, which can be unpacked inside the thread
instead of passing the slurpy array around in raw form 18:31
chromatic That sounds much easier to do now than before this branch. 18:32
Whiteknight much much easier 18:33
what we don't have is a routine to build a CallSignature from an RPA
although I could make one when I get home tonight
all outstanding failures WILL be gone this weekend, one way or another
then chromatic and his wrecking ball crew are free to optimize like mammajammas
18:34 davidfetter joined 18:35 ash_ joined
Whiteknight in their pajamas 18:39
chromatic That only rhymes on the east coast.
Whiteknight you mean the "best" coast 18:40
simple spelling mistake 18:41
chromatic "beast" and "east" rhyme. I can understand your confusion. 18:42
Whiteknight ...and on that note, I need to go to a wedding. Later
Austin sings, "Life ain't easy for a boy named 'Sue'." 18:46
whoppix ... Do you see banana man, hopping over the white hot sand, here he come with some for me, freshly taken from banana tree... 18:48
... do you want a banana? peel it down and go mm-mm-mm! do you want a banana? Dis bana for you.
treed I see. 18:49
18:49 theory joined
Austin sings "Banana man, me want a tan. Give me double and a bonus one!" 18:50
Austin sings "Work all night, and I drink a rum! Stack banana 'til de morning come. Come mister tally man and tally me banana!" 18:53
Now I've got bananas in me head... :(
whoppix Well its nine o'clock and its getting dark, and the sun is falling from the sky. I've never left so early and you may wonder why... 18:54
*whistle*
tomorrow morning, on de plane, no banana make you go insane! flying back to busy town, no banana make you want to frown! 18:55
Austin, here, something to distract your mind from bananas: www.youtube.com/watch?v=37vqyQ8CIgU 19:09
Austin :) Man, what is it with you and vegetation? 19:11
Bananas, tumbleweeds.
whoppix well, they're both pretty rad. 19:12
Austin www.youtube.com/watch?v=LEo8poVlQrM 19:13
whoppix The coronation of millions of years of evolution, so to speak.
Austin There you go.
The ultimate country song.
whoppix I thought that was "country roads". 19:14
19:14 nopaste joined
whoppix I'm more into the blues, though. 19:14
Austin "Baby I got the greens ... I got the greens, so bad!" 19:15
(Gary Larson, The Far Side)
kthakore chromatic++ rakudo passes!!! 19:18
what is the goal for Rakudo* ?
mikehh pcc_reapply branch - make smoke #29134 at r41902 - 10,757 ok, 8 failed, 262 todo, 560 skipped and 0 unexpectedly succeeded - Ubuntu 9.10 (beta) amd64 19:19
chromatic A useful subset of Perl 6.
mikehh that includes 4 missed tests - t/library/coroutine.t - Parse errors: Bad plan. You planned 6 tests but ran 2.
kthakore chromatic: no I mean test pass percentage 19:20
chromatic: is it 80?
mikehh I make it about 79%+ at the moment
19:21 Piper joined
Piper Hi there. I am Piper. I am now publicly logging this channel. If you don't want to be logged, please leave now. 19:21
chromatic The number of tests in the suite increases too, kthakore -- so it's hard to gauge the target percentage. 19:22
19:22 mokurai joined
kthakore chromatic: ah ok 19:23
chromatic: well congrats to you guys nonetheless 19:24
chromatic Thanks. 19:25
jonathan kthakore: I gave a talk on Rakudo * recently, you may be interested to see the slides: www.jnthn.net/papers/2009-yapc-asia-rakudo.pdf
kthakore jonathan: thanks
jonathan kthakore: (slides are in both English and Japanese, so you only need to read half the text ;-))
kthakore jonathan: How do you know I can not read Japanese? 19:26
treed He said only "need".
not only "can"
jonathan kthakore: If you can, and you prefer to read that instead of the English, you can read that instead. ;-) 19:27
kthakore treed: a joke ... a lame one at that ... my apologies
jonathan kthakore: Of course, you can read both just for fun. ;-)
;-)
kthakore jonathan: ok ... arigato senpai
jonathan kthakore: I should clarify at this point that I don't speak Japanese, the slides were translated by one of the cool Japanese folks organizing YAPC::Asia. :-)
OK, my food is ready! :-D 19:28
kthakore nice
19:28 kid51 joined
kthakore jonathan: oh ... when you get back I have questions! 19:28
hi kid51
kid51 hello kthakore 19:29
Did you do that lightning talk at TPM?
kthakore kid51: indeed I did
kid51 and how did it go?
kthakore kid51: I did it playing Tetris as I had no slides!
kid51: it was hard ... and I think they liked it 19:30
github.com/kthakore/TetrisPL that was what I was playing
kid51 Well, in my own user group, when people ask, "How many slides should I prepare?", I answer, "the fewer the better" :-)
kthakore I had none and a game so do I win!! 19:31
?
kid51 Yes!
kthakore yay!
kid51: take a crack at it its on cpan now
kid51: perl -MCPAN -e "install SDL::Tutorial::Tetris"
kid51 I'll make a note of it 19:32
kthakore and perl Tetris.pl
kid51: I keep getting this awesome warm buzz when I talk about CPAN
*CPAN* is the *SHIT* ya know
man love it 19:33
dukeleto whoa, we have tests in t/op/arithmetics.t that assert exactly string equality on floating point numbers. That is never a good idea. 19:37
cotto there's no way that could ever cause problems or test something other than intended. 19:40
19:41 mikehh joined
kthakore what am I doing wrong here? 19:43
./perl6 -e "\\$dice_roll = 2; if \\$dice_roll == 2|4|6 { say \\"even\\" }"
it says $dice_roll not previous declared
Austin Failing to declare $dice_roll? 19:44
kid51 In Perl 6 command-line, is 'use strict' on by default? 19:45
kthakore oh there is a different way of declaring in Perl6
guess I should go learn Perl6
kid51 so should I 19:46
dukeleto kthakore: a 'my $dice_roll = 2' would work
kthakore oh ok 19:49
yay!! my first perl6 code
now to do NCI in with Rakudo :P 19:50
heh
dukeleto kthakore: there is Link::C
kthakore dukeleto: will it work with Perl5 too? 19:51
dukeleto kthakore: no. rakudo-specifc
kthakore: what are you trying to do?
kthakore I am trying to do Parrot and Perl5
ah ok
dukeleto: Perl5 NCI + Parrot NCI to same shared libs of SDL Perl
Perl5 is in XS now 19:52
dukeleto kthakore: have you ever heard of SWIG?
kthakore I am hoping in 2011 I can get Parrot and Perl5 both using NCI libs for SDL
dukeleto: no ..
SWIG works for both Perl 5 and Parrot?
SWIG.org doesn't list Parrot as an exit 19:53
dukeleto kthakore: you may want to take a look at SWIG, it helps automate writing XS (and other glue languages). I use it to build bindings to the GSL C library in Math::GSL
kthakore: yes, swig does not know about parrot, yet. good project for the interested reader... 19:54
kthakore well isn't that what NCI will do?
Perl5NCI chromatic's lib is suppose to make XS for a shared lib 19:55
jonathan back
kthakore jonathan: questions!
purl i heard questions was - how?
kthakore jonathan: you say in Slides you want to make Perl5 work in Perl6
jonathan: how will this handle XS intense Perl5 modules
like POGL (Perl OpenGL) and SDL Perl (shameless plug) 19:56
or WxWidgets
purl hmmm... WxWidgets is the new name for wxWindows, an open-source cross-platform native UI framework
jonathan kthakore: Depends exactly what they do. I mean, my approach is "embed Perl 5, then build bridges" 19:57
kthakore jonathan: these are all C bindings to Perl5
19:58 payload joined
jonathan If the point of the XS library is bindings to a C library, then I think it'll work out fine. It'll be less efficient than having bindings based on Parrot NCI of course, but at least should make Perl 5 modules accessible from Perl 6 and other Parrot languages. 19:58
kthakore jonathan: dukeleto: I guess what I am looking for is a good direction to do SWIG (like thing) that works for Perl5, and Perl6/Parrot
jonathan If the point is stuff that mucks around with internals, then it's more likely to be an issue. 19:59
kthakore jonathan: no internals
jonathan: bindings only
jonathan: a unified way to do bindings for Perl5 and Parrot is what I want
jonathan My aim is to have things like DBI usable, for example.
kthakore jonathan: that would be usefull indeed 20:00
dukeleto kthakore: asking the swig folks about generating PIR would be pretty interesting. i might do it myself
jonathan Aye. It's also a migration thing, to help people start using Perl 6 without having to wave goodbye to all of their Perl 5.
kid51 jonathan: Loved the slide show. Plan to steal it for Perl Seminar NY viewing!
jonathan kid51: I'll be giving it at the Italian Perl Workshop on Friday, btw. 20:01
dukeleto kthakore: you could just target Parrot only and then help us hack on Blizkost (Perl 5 on Parrot) ;)
kthakore jonathan: that too. But I *REALLY* want to do Perl6 + SDL without having to Redo all my work in Perl5 SDL
dukeleto: I would have no clue where to begin in that
kid51 must book
jonathan kid51: Those ones will just have English on, so you may find them better for showing in US.
kthakore: I'm not sure there's a good tool for making your life really easy if you want "native"-ish bindings for Perl 5 and Parrot. 20:02
kthakore: Other than what dukeleto is proposing, which would be cool, about from not existing yet. ;-)
kthakore jonathan: but Blizkost will mean XS -> Perl5 -> BlizKost -> Perl6 20:03
layerfull binding is layerfull
dukeleto: jonathan I am asking is this possible C -> INTFace -> Perl5/Perl6(XS/NCI) 20:04
dukeleto kthakore: XS -> Perl5 -> BlizKost -> PIR -> Perl6
kthakore s/INTFace/interface
dukeleto: :) still layer full
jonathan dukeleto: Well, you don't really need the PIR layer in there much. 20:05
kthakore dukeleto: seems like to much effort and I wonder how many thinks will be lost between each layer
dukeleto kthakore: not that I know of. the closest thing I can think of is target Parrot and help us improve it to do everything you need :)
jonathan kthakore: Well, mostly performance things. ;-) 20:06
kthakore jonathan: and games need performance ....
jonathan: so is this possible C -> INTFace -> Perl5/Perl6(XS/NCI)
s/INTFace/interface
jonathan: or if it doesn't exist how can I make one
jonathan kthakore: It sounds like you want some tool that can spit out bindings that are both Parrot NCI and Perl 5 XS from the same set of things.
kthakore jonathan: yes!
jonathan I don't think anything like that exists yet. 20:07
kthakore jonathan: how do I make one
jonathan: ( I am rubber duck so treat me like one) :)
chromatic We have languages/c99 in some degree of completion.
dukeleto kthakore: SWIG already talks XS. if we teach it NCI, it would do that :)
kthakore dukeleto: yay!!
jonathan I think dukeleto was suggesting that SWIG can currently make bindings for XS, so...yes, that ;_)
kthakore dukeleto: oh crap I just realized 20:08
my Perl5 nicities will be gone if I do Swig
dukeleto I will be sharing a hotel room with the SWIG guy in GSOC, so I will definitely chew his ear off with respect to this
kthakore: what do you mean? 20:09
kthakore dukeleto: yay!!!
well pure XS C is not perly at all
so we make a layer SDL::Game::*
which is Perl5 and Object XS
jonathan kthakore: No, but you can build an thin idiomatic interface around it I guess.
dukeleto kthakore: take a look at the way Math::GSL works. it is the middle path
kthakore jonathan: right
ok
I will thanks guys
dukeleto: let me know about any SWIG initiative to do this stuff 20:10
dukeleto kthakore: i use SWIG to generate bindings to the C library, then I include another, more Perl-ish, layer on top of the raw SWIG-generated perl interface
kthakore I can help some, blog a lot and get lots of interest in it!
dukeleto kthakore: sure, blog it up!
kthakore dukeleto: I will as soon as our current SDL is redesigned ! 20:11
github.com/kthakore/SDL_perl/tree/redesign 20:12
acme++ for that!
dukeleto: we want a good modular design before we head in SWIGy directions
dukeleto: the last XS bindings we well ... crufty (sorry chromatic ) 20:13
s/we/were
chromatic I didn't write them, so no harm here.
kthakore jonathan: dukeleto Thanks so much ... at least I have a clue now where to go! 20:14
chromatic: ok :)
chromatic: I try not to say bad things about code but
jeez ... some design can't hurt
chromatic My work with the build system was to try to make it possible to use several XS files.
kthakore chromatic: we need help making it better too :) 20:15
chromatic: I know who to hunt down now yay!
chromatic fixed the namespace-old test.... 20:25
dukeleto chromatic: sweet! 20:28
chromatic It's the forehead-slapper.
dalek rrot: r41903 | chromatic++ | branches/pcc_reapply/src/pmc/object.pmc:
[PMC] Fixed Object PMC's find_method VTABLE op to return PMCNULL when running

Parrot_pcc_invoke_sub_from_c_args() does not eventually initialize the passed-in pointers like the previous version did. We'll have to fix that or scrub the code for uninitialized values.
20:31
20:41 FullMetalHarlot joined, Ron_ joined 20:47 Ron joined
dalek rrot: r41904 | chromatic++ | branches/pcc_reapply/src/pmc/class.pmc:
[PMC] Removed another unnecessary gc_unregister_pmc() call with the
20:47
rrot: r41905 | chromatic++ | branches/pcc_reapply/src/pmc/object.pmc:
[PMC] Fixed more Parrot_pcc_invoke_* calls with uninitialized return values.
rrot: r41906 | dukeleto++ | trunk (6 files):
[t][TT #1114] Convert t/op/string.t, t/op/arithmetics_pmc.t, t/op/arithmetics.t, t/op/arithmetics to PIR, mgrimes++
rrot: r41907 | chromatic++ | branches/pcc_reapply/src/pmc (2 files):
[PMC] Explicitly initialized return values before PCC calls in Exception and
rrot: r41908 | chromatic++ | branches/pcc_reapply/src (2 files):
[src] Explicitly initialized potential PCC return values before PCC calls.
chromatic No other easy reclamations there, but at least it's progress. 20:49
lib/Parrot/Pmc2c/PCCMETHOD.pm should probably initialize outvars appropriately. 20:52
I don't know if that'll fix anything either, but it's a correctness.
dukeleto chromatic: i like correctness 20:55
chromatic: did you see the fib.pir benchmark that I did? nopaste.snit.ch/18355 20:56
chromatic I did. 20:57
I wonder why it's getting slower in trunk. 20:58
dukeleto chromatic: is there any other files that I can benchmark that you would like to see? perhaps they can give us an inkling to what is going on
chromatic: also, I need to fight demons to get kcachegrind installed on my laptop 20:59
20:59 Ron_ joined
chromatic examples/benchmarks/primes.pasm is pretty good for register access, dispatch, and numericals. 21:00
oofib.pir is good for objects.
I haven't done much with array_access.pir because it can be spendy, but it has some good PMC benchmarking.
dalek rrot: r41909 | pmichaud++ | trunk/compilers/pct/src/PAST/Node.pir:
[pct]: Add some resolution to subid generation, in case multiple

a better uuid generator here, but this works for now.)
21:17
21:17 davidfetter joined
jonathan chromatic: Did you ever try running the PIR profiler on Rakudo yet? 21:18
I'm considering trying it out in the next week or so, and was curious about past experiences. :-) 21:19
chromatic It was fairly slow and generated a lot of output.
We need to optimize 1) annotation lookups in PBC 2) the output format of the profiler and 3) the post-processor. 21:20
jonathan Output that could be loaded into kcachegrind and make pretty diagrams? ;-)
chromatic It looked reasonably accurate though.
Yes, we can produce pretty diagrams.
jonathan \\o/
OK, I guess I need to figure out a way to run kcachegrind.
davidfetter \\<>/
chromatic cotto and I should make optimization a priority for 1.9 or 2.0.
pmichaud I expect to be doing some profiling with nqp-rx in the next few weeks. 21:23
nqp-rx will exercise a lot of common compiler features, without being quite as "heavy" as Rakudo. 21:24
time for a short break here.
cotto ohai 21:25
btw, slimvocado != avocado
and yes, profiler optimization is definitely called for 21:26
I'm not sure if anything will save this trainwreck of a smoothie. 21:31
is there any reason not to rename gc_register_pmc to gc_register_pobj (after deprecation)? 21:48
chromatic I can't think of one. 21:49
cotto is glad that he can finally find the tuits to break stuff again.
chromatic, there was another similar function that took a PObj* that was recently rewritten into a _pmc and a _str variant. Do you remember what it was? 21:51
chromatic Parrot_gc_mark_pobj_alive. 21:53
cotto That's the one. I'll just do the same thing with gc_register_pmc. 21:55
thanks
22:02 bacek joined 22:04 nopaste joined 22:23 mikehh joined
mikehh pcc_reapply branch - make smoke # at r41909 - 10,757 ok, 8 failed, 262 todo, 560 skipped and 0 unexpectedly succeeded 22:47
including 4 tests missed by t/library/coroutine.t - Parse errors: Bad plan. You planned 6 tests but ran 2 22:48
22:51 TiMBuS joined 22:52 TonyC joined
bacek mikehh: how many failed tests in t/pmc/threads.t? 22:55
chromatic 3 22:56
bacek ok, I down to 2. 22:57
By implementing flattening args in build_sig_from_c
nopaste "bacek" at 114.73.59.63 pasted "proposed patch" (97 lines) at nopaste.snit.ch/18365 22:58
bacek chromatic: any objections for nopasted patch?
chromatic I'd rather preallocate the STRING buffer to the right size. 23:00
mikehh bacek: Failed tests: 6, 8, 13
chromatic Otherwise it looks fine.
bacek mikehh: Failed tests: 6, 13
chromatic: ":flat". We don't know final string_sig...
chromatic Good point. 23:01
bacek I go ahead and commit it.
chromatic It reclaims a test. That's good enough for me.
mikehh gotta take a break - bbl 23:02
dalek rrot: r41910 | bacek++ | branches/pcc_reapply/src/pmc/parrotinterpreter.pmc:
[cage] Unblock blocked GC mark in clone_interpreter, not GC sweep.
23:04
rrot: r41911 | bacek++ | branches/pcc_reapply/src/call/args.c:
[pcc] Implement flattening of argument in build_sig_object_from_varargs.
rrot: r41912 | bacek++ | branches/pcc_reapply/src/thread.c:
Flat sub argument in thread_func.
bacek oookey. I fixed one more bug. 23:26
threads.t, test 13 is last one.
chromatic Nice.
dalek rrot: r41913 | bacek++ | branches/pcc_reapply/src/call/args.c:
Fix handling flags in parse_signature_string
23:27
bacek ok. I don't understand test 13 in threads.t... 23:36
dalek ose: r181 | Austin++ | trunk/ (50 files):
NOT WORKING: Snapshot commit for backup purposes.
23:53