Parrot 1.7.0 "African Grey" is out! | Fix issues caused by the pcc_reapply merge
Set by moderator on 23 October 2009.
Whiteknight dukeleto: once we get this dynpmc building, we can (1) start writing a test suite for parrot-linear-algebra, and (2) use that matrix type in Matrixy instead of nested RPAs 00:03
so it is exciting 00:04
Austin whiteknight: you know about tools/build/dynopslib.pl, right? 00:05
*slib=libs
dukeleto Whiteknight: i am all over the test suite
Whiteknight: which language do we want the test suite to be written in? 00:06
Whiteknight dukeleto: doesn't much matter to me. Whichever is easiest 00:07
Configure is written in NQP, so that's perfectly acceptable 00:08
maybe PIR would be good just because we would have all the PIR test harness goodness 00:09
dukeleto Whiteknight: there is no test harness written in PIR, that I know of. I think the test harness will be NQP and the tests can be in either NQP/PIR 00:11
Whiteknight oh, I meant Test::More was written in PIR 00:12
but yeah, whatever you want. Just so long as it's part of the Parrot repo
dukeleto who do I bug when dalek doesn't pick up a language? 00:18
dalek?
purl it has been said that dalek is #parrot's spammy little rss bot or (see: dalek plugins)
dukeleto dalek plugins?
purl i guess dalek plugins is github.com/Infinoid/dalek-plugins/tree/master
dukeleto msg Infinoid i've added pl/parrot to the languages wiki page, can you see why dalek is not talking about it? 00:19
purl Message for infinoid stored.
Whiteknight pl/parrot? 00:26
purl somebody said pl/parrot was a really cool project irc://irc.freenode.net/plparrot
Whiteknight okay, that's not really a lot of information 00:28
Oh, a Postgres interface 00:35
Whiteknight was secretly hoping it was a compiler for PL/1
davidfetter sorry, Whiteknight 00:36
<-- instigator of this project
Whiteknight davidfetter++ 00:37
00:40 chromatic joined 00:42 payload joined 00:43 patspam1 joined
Whiteknight hello chromatic 00:46
chromatic hola pato 00:51
I think we should consider the linked-list GC optimization in the next couple of months. 00:53
What do we need to do around the API to make that possible or easier?
Austin What is the right multi signature for a *method* taking a string first argument? Is it multi(['String']) or multi(_, ['String']) to allow for self? 00:58
And given that I'm pretty sure it's the second one, why does that method not get called when I pass two strings - instead, the multi(_) variant is called. 01:00
Whiteknight chromatic: that's a good question. I think the encapsulation efforts have gone a long way towards improving things 01:03
and some of the other cleanups (removing the high priority nonsense, for instance) 01:04
Austin: no idea
chromatic: there are lots of optimizations that we can make to the current GC, although in the long run a better algorithm would still be best 01:05
we could do some very aggressive loop-unrolling in the sweep code, for instance
dukeleto Whiteknight: github.com/leto/plparrot 01:06
dukeleto learned SO much at the dynamic lang interop session today 01:07
Whiteknight dukeleto: yeah, saw that already
chromatic I don't think we have to sweep much in the linked-list system.
Whiteknight dynamic lang interop session?
dukeleto we talked a lot about JIT with an llvm dev, and he gave me pointers for parrot 01:08
Whiteknight chromatic: I might need some time to get the algorithm back into my head
chromatic It's pretty simple.
Whiteknight I have a patchset laying around here somewhere
chromatic If only we had custom hardware. 01:09
dukeleto from what I learned today, i think supporting libjit and llvm is a bad idea. we should concentrate on getting *one* to work
brb
Whiteknight dukeleto: why do you say that? We wouldn't support both at the same time, would be selected at configure time one or the other 01:11
dukeleto Whiteknight: that doubles the dev time needed, at least. 01:12
Whiteknight dukeleto: not necessarily
not all development man-hours are created equal, and in a volunteer project some people aren't going to work on some projects 01:13
dukeleto Whiteknight: and by *one* I mean llvm. no one had anything good to say about libjit, especially the community
chromatic I think most of the work is getting the rest of Parrot to a place where being able to JIT with any system is possible.
plobsing yup.
dukeleto just reporting what I heard
i have lots of notes
Whiteknight Well, that's a slightly different story. Allison already said that LLVM is our first target 01:14
plobsing I looked at nci.pmc, it is pretty broken ATM
Whiteknight it's worth noting that the libJIT people and community don't have a lot of nice things to say about LLVM
it's all marketing
Basic strategy: Implement one. Create a good extensible framework, allow people to add other options as they choose 01:15
we will end up with libJIT back-ends, GNU Lightning backends, etc.
chromatic Broken how, plobsing? 01:17
plobsing there are 2 places where NCI sigs get converted to PCC sigs 01:18
nativecall.pl and nci.pmc
nci.pmc isn't up to date with pcc_reapply
I am currently working on a fix 01:19
Whiteknight does nci.pm ever get used?
plobsing++
plobsing yes. it's what wraps the NCI frames
The fix is pretty easy, but I want to add a test so that the 2 places don't become de-synced again
that is proving more difficult 01:20
Whiteknight so then where is nativecall.pl used?
plobsing when build-frames = 0 01:21
chromatic To generate src/nci.c?
plobsing I figure its the source of the old JIT's pcc problems
it will cause *any* JIT system to have weird hard to track bugs
01:23 jsut_ joined
plobsing Incidentally, is there a reason we load up all the static NCI callers when we don't use the frame builder? 01:25
Why aren't we using a trie?
Whiteknight plobsing: that would require some "thought" and "planning" 01:26
it is a very interesting idea though
plobsing I'll add that to the things I intend to fix.
Whiteknight plobsing++ # Again 01:27
chromatic It was never worth it to add a trie, yet. 01:30
plobsing wasn't the upfront cost of loading all those subs the main argument against ripping out the old JIT? 01:31
Whiteknight plobsing: sort of, but I don't think it was ever a good argument
we need a real JIT, and fixing this hackjob doesn't get us to that goal
plobsing In any case, I can probably handle that side of the fixups to support jit systems. What I can't do and realize will become a problem is the config system. 01:33
dukeleto every project at the session said that suppporting multiple JIT backends was a Really Bad Idea. just sayin' 01:34
Whiteknight dukeleto: like I said, we'll start with one and try to leave the door open for others
no harm in trying
plobsing Right now, it supports a binary JIT or no JIT decision. If we have multiple, we'll have to make things more complicated, and I don't know the best way to do that.
dukeleto: for what its worth, I would have used LLVM, but I hate C++. 01:35
dukeleto some projects are on their 5th "from the ground up" rewrite of their JIT system
plobsing: we have a common enemy. 01:36
also, are we planning on trying to run JIT in a background process? that was mentioned a bunch, since it utilizes multicore systems very well 01:38
01:39 eternaleye joined
dukeleto is going to eat, be back much later 01:39
chromatic I don't think we have a plan that concrete yet. 01:40
Whiteknight plobsing: LLVM has C bindings
plobsing hmmm... must have missed it. 01:41
purl i guess must have missed it. is the feature on cpan yet?
Whiteknight plobsing: I don't remember who told me about them. Maybe ash_. they aren't well advertised 01:42
chromatic Chris Lattner told me that we could ask for anything not yet exposed to C and they'll add them for us. 01:43
Whiteknight but they do exist. Seen them with my own eyes
chromatic: that's handy!
chromatic "LLVM has C bindings for a lot of the APIs, if you need new ones we're 01:44
happy to add them. See llvm/include/llvm-c/*"
Whiteknight nothing I love better then an open-ended offer to develop things
chromatic I helped him move a couch, years ago. He owes me.
Austin Anyone know where a function or macro named "pmc_type()" is defined? (called from imcc)
chromatic src/pmc.c ? 01:45
Austin Yep. Found it. Thanks.
Whiteknight Austin: include/parrot/pmc.h:124 01:47
plobsing any idea why nci.pmc has a multi_sig attribute when it doesn't appear to get set anywhere?
chromatic make tags-vi
plobsing, it may have been removed.
plobsing chromatic: do you mean I can remove it? 01:49
Whiteknight has to log off now. Goodnight
01:51 colomon joined
Austin chromatic: I've got some weird :multi behavior, and I'm not sure if it's a bug, or what. Do you know what :multi(_) compiles down to, mmd_distance-wise? 01:52
01:52 eternaleye joined
nopaste "Austin" at 98.235.55.43 pasted ":multi weirdness" (20 lines) at nopaste.snit.ch/18445 01:52
01:54 patspam joined
Coke Austin: I thought it was :multi(String) 02:00
not 'String'
Austin Coke: I had ['String'], then String, then 'String'. It doesn't seem to matter.
chromatic Austin, I don't remember. 02:02
plobsing, if everything passes tests without it, cut away.
Austin I can't see any special processing, in which case it seems like it would compile down to 'undef'.
chromatic I think it's "Any", but I don't remember how that factors into the distance formula. 02:03
Austin I'm trying to understand why multi(_) is a better match than multi(String) for 'string'
chromatic It shouldn't be.
Austin see my nopaste above. 02:04
02:16 eternaleye joined 02:26 Andy joined
dalek TT #1144 created by Austin_Hastings++: MMD incorrectly matches _ instead of String 02:35
02:42 janus joined
Coke Austin: I believe you want (string) 02:48
a String prefers a string, but a string doesn't prefer a String, apparently. 02:49
Austin :)
Coke but, anyway, a :multi(string) will dwym, more.
Austin more? 02:52
purl i think more is more is less. or Masters of Reverse Engineering. They cracked CSS :) or see "again" or see "yet again" or legendary outlining software put out 15 years ago by Symantec who has since lost the source code. or software that makes people still run Mac OS 8 just so they can use it
Austin again?
purl Nothin' up my sleeve. Presto!
Austin yet again?
purl somebody said yet again was full too
Coke more, as opposed to perfectly.
Austin Ah.
Actually, I just tried that. Thanks. It doesn't match the cases where the string is in a pmc. But since I'm mechanically generating crap, it's no skin off my nose to emit _string and _String versions. 02:53
It's still a bug, though, AFAICT. The type promotion variant should always be closer than "any old thing". 02:54
Coke agreed it's a bug. 02:58
Austin Coke++: Thanks for thinking of that lower-case notion. I never would have thought about it. 03:01
Coke those are the primitive types. 03:10
and I just grepped through my code for :multi to see what I did. =-)
Austin :) 03:11
Coke should this require a bigint? (more)
-9223372036854775807
purl -9223372036854775807
Austin (unsigned)-1
purl, 1 << 32 03:12
purl Austin: excuse me?
Austin tch
Coke I believe that's 1<<63
03:12 eternaleye joined
Austin Is it? 03:13
purl it's it!
Austin purl, 4 * (1024 **3)
purl 4294967296
Austin purl, (2**4) * (1024 ** 6) 03:14
purl 1.84467440737096e+19
Austin Maybe purl needs Bigints?
dalek rtcl: 4d309db | coke++ | docs/spectest_skips:
unable to duplicate this segfault now.
rtcl: fe44639 | coke++ | docs/spectest-progress.csv:
this was an optimized run
rtcl: 6ff7de6 | coke++ | docs/spectest- (2 files):
Highest # of passing tests, ever.
Austin purl 15 * (1024 ** 6)
purl 1.72938225691027e+19
Austin purl, 3 * (1024 ** 3) 03:15
purl 3221225472
Austin purl 4 * (1024 **3) + 1
purl 4294967297
Austin Hmm.
purl 4 * (1024 **4) + 1 03:16
purl 4398046511105
Austin purl 4 * (1024 **5) + 1
purl 4503599627370497
Austin purl 4 * (1024 **6) + 1
purl 4.61168601842739e+18
Austin purl 1000 * (1024 ** 5) + 1
purl 1125899906842624001
Austin purl 1024 * (1024 ** 5) + 1
purl 1152921504606846977
Austin purl 2 * (1024 ** 6) + 1
purl 2.30584300921369e+18
Austin purl 1 * (1024 ** 6) + 1
purl 1.15292150460685e+18
Austin wtf? 03:17
03:17 cotto_w0rk joined
Austin Hello, cotto. 03:17
plobsing Austin: my perl does that and I'm on x86_64. 03:18
Austin plobsing: Does what? Switch to e+ at 60 bits?
plobsing yup 03:19
Austin Hmm.
perl--
Coke [expr (1<<63)-1] is crashing expr.test because the 1<<63 is generating that number, but then -1 can't deal with it. 03:29
Austin Because it's signed? 03:30
Coke (that's 80% of the way through the test file. so close.)
Austin: presumbly because it's out of range.
(of int)
ah. yah, it is supposed to be positive. 03:31
partcl is returning it as a negative.
interesting, I do have a bunch of upper case mmd. 03:40
03:42 janus joined 03:51 xenoterracide joined
chromatic I wonder if it's the :slurpy. 04:02
04:04 mokurai joined
Coke should that impact mmd? 04:16
04:44 jsut joined
Coke thinks he has eliminated one of the :multi's he was using with a vtable. 04:46
yay.
dalek rtcl: 28117f5 | coke++ | (16 files):
elminate toInteger(), replace with get_integer vtable
04:50
Coke that should be a speedup, swapping out a multi call for a vtable call. 04:51
(plus it's more HLL friendly)
Austin chromatic: It's not the slurpy. 05:26
05:28 Zak joined
cotto Austin, if my work counterpart shows up on a weekend, it's definitely because of a flaky connection. ;) 06:23
Austin I was impressed at your dedication.
cotto chromatic, do I see correctly that we're slightly faster than before the pcc merge? 06:24
cotto goes off to test
After a while, all those 3% improvements start to add up. 06:31
not quite. It looks like oofib is about 11.88% slower now than before the merge 06:49
Austin Just "about" 11.88%?
cotto give or take
;)
Austin :)
cotto (for oofib. I'm testing fib.pir but it's slower) 06:50
also, iwbn to have a benchmark similar to complete_workflow.t except in pure-pir.
testing performance by looking at silly programs like oofib doesn't give me a great deal of confidence. 06:51
06:54 desertm4x joined 06:58 fperrad joined
cotto fib.pir is 13.98% slower 07:07
That's still *way* better than immediately after the merge.
chromatic Try with the fast runcore. 07:09
Also, are you running optimized? 07:10
cotto no
chromatic That may be why it looks faster for me then. 07:11
cotto I thought fast was the default.
chromatic I missed a spot in IMCC. 07:12
cotto I guess it's switched. Is there a reason it's not fast?
chromatic I was holding off on that patch while there were line numbering problems in annotations. 07:13
plobsing can I remove 'v' as a NCI signature parameter. It was deprecated in 11838 (2.5 years ago), but doesn't show up in DEPRECATED.pod. 07:15
?
chromatic We probably forgot to put it there.
I won't tell if you don't.
plobsing I wasn't sure because we actually have a test that depends on this behaviour 07:16
That's gone too I suppose. 07:17
07:17 desertm4x_ joined
chromatic Looks like 2.144% to go with optimized builds and the fast runcore, cotto. 07:18
dalek rrot: r42086 | mikehh++ | trunk/t/op/annotate-old.t:
mark failing test as TODO in fast and cgoto runcores - TT #1135
07:23
07:26 mokurai joined
ttbot Parrot trunk/ r42086 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/122838.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 07:30
07:32 xenoterracide joined
dalek rrot: r42087 | mikehh++ | trunk/t/pmc/eval.t:
mark failing test as TODO in testr - TT #1142
07:39
plobsing is it possible to get pmc2c to emit additional things (eg: an enum) into the header file? 07:42
ttbot Parrot trunk/ r42087 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/122888.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 07:45
Austin of course it is. The source code is in tools/build. Good luck. :)
dukeleto 'ello 07:47
dalek rrot-linear-algebra: f6a7a02 | (Markus Mayr)++ | (2 files):
Added a CBLAS-based method to add matrices.

a test for our build system. Added myself to CREDITS.
07:48
rrot-linear-algebra: 70a4b03 | (Markus Mayr)++ | examples/add.pir:
Added an example for adding matrices.
Austin Howdy, duke.
dukeleto Austin: yo 07:53
Austin I saw a bunch of comments earlier about the conference. Is there a blog post coming? 07:54
(Or was that not you?)
08:01 iblechbot joined 08:03 bacek joined
bacek o hai 08:15
08:37 Patterner joined
mikehh All tests PASS (pre/post-config, smoke (#29372), fulltest) at r42087 - Ubuntu 9.10 beta (updated) amd64 08:41
howdy bacek
bacek mikehh: not so bad. Thinking about breaking parrot in most weird way
08:43 chromatic joined
mikehh good - I am working my way through some skipped tests to see if they pass or can be TODOed rather than skipped 08:43
bacek mikehh: it's good. Any luck with stealing autounfidge from rakudo?
autounfudge 08:44
purl rumour has it autounfudge is currently running, and finds more
mikehh looking at it
purl looking at it is not reading it
mikehh who woke purl up again
hey who changed make install/install-dev 09:02
it doesn't install the binaries properly 09:05
fperrad ping bacek 09:07
purl I can't find bacek in the DNS.
09:11 jsut_ joined
dukeleto 'ello 09:17
Austin: i am at a conf. i should write a blog post about the dynamic language interoperability session 09:18
09:30 mokurai left
mikehh msg darbelo: the changes to install/install-dev now fail to install the binaries properly - at least for me (no parrot_config, parrot, etc in bin directory) 09:39
purl Message for darbelo stored.
dukeleto mikehh: that is no fun 09:46
mikehh dukeleto: trying to adapt rakudo autounfunge - don't know if I am getting there :-} 10:37
dukeleto: I think it's going to take a while - different philosophies 10:40
10:55 allison joined
mikehh how do you look up a specific ticket in trac - TT #445 for example- no idea if it is open or closed 11:09
it looks open - if I unskip the test on x86-64 it passes - in I can pass all tests in t/examples/shootout.t 11:15
s /- in/- in fact/ 11:16
there still must be an easy way to look up a specific ticket in trac 11:17
hmmnn - there seems to be at least three different ways tests are skipped in parrot 11:27
Austin mikehh: type #999 in the search bar 11:29
11:30 kj joined
mikehh Austin: thanks - I tried TT #445 (failed) and 445 - which got it but a lot of other stuff 11:35
Austin # is magic for Trac - it autolinks when you put it in wiki text, triggers the special lookup in search, etc. 11:36
11:43 mikehh joined 12:15 Whiteknight joined
Whiteknight Good morning #parrot 12:20
kj morning Whiteknight 12:21
Whiteknight hello kj
parrot_nqp doesn't seem to be working on my system 12:40
bash: /usr/local/bin/parrot_nqp: No such file or directory
ah, nevermind. install and install-dev were swapped 12:41
mikehh Whiteknight: the install script in makefile doesn't install binaries properly - I already messaged darbelo about it 12:42
Whiteknight mikehh: which project?
mikehh parrot
Whiteknight I just did "make install" instead of "make install-dev" and it worked 12:43
mikehh ok - let me try that - there is an install-bin as well
Whiteknight is there? what does that do? 12:46
mikehh Whiteknight: you are rignt - when I tried it before it didn't seem to work - porobably finger trouble
Whiteknight I know they've changed the make targets recently 12:47
mikehh make install-dev should do the same as make insdtall - make install-bin should be the same as make install was brefore
12:51 Whiteknight joined 12:59 mikehh joined
mikehh stoopid internmet connection - it has disconnected me at least 4 times today 12:59
internet 13:01
purl internet is for porn or Serious Business.
Whiteknight purl msg darbelo parrot-linear-algebra:Configure.nqp has some problems. $(TOOL_DIR) and some other things aren't being set correctly 13:03
purl Message for darbelo stored.
Whiteknight purl msg darbelo nevermind, I think I've found the problem 13:04
purl Message for darbelo stored.
dalek rrot-linear-algebra: 2dd9a30 | Whiteknight++ | src/pmc/ (2 files):
rename NumMatrix2D file to nummatrix2d since pmc2c is stupid about caps
13:18
rrot-linear-algebra: 16ae25d | Whiteknight++ | config/Makefile.in:
Some major changes to the makefile. Mostly builds now, but not completely
rrot-linear-algebra: 6e45589 | Whiteknight++ | src/pmc/NumMatrix2D.pmc~:
remove a temp file that kate added to my workingdir
13:31 iblechbot joined, desertm4x joined 13:36 Andy joined
dalek rrot: r42088 | allison++ | branches/pcc_reapply:
Removing calling conventions refactor branch after merge
13:54
rrot-linear-algebra: fa6912e | Whiteknight++ | config/Makefile.in:
fix some include paths in the makefile
14:04
14:09 joeri joined
dalek rrot-linear-algebra: 253ee99 | (Markus Mayr)++ | (3 files):
Building and the example are now working (if cblas is available).
14:33
14:37 s1n_mini joined 14:38 jan joined
s1n_mini particle: ping 14:39
14:53 Andy joined 14:54 plobsing joined 15:02 shillo joined 15:10 flh joined 15:13 Psyche^ joined 15:17 desertm4x_ joined 15:18 bacek joined
dalek rrot-linear-algebra: dc49f25 | (Markus Mayr)++ | config/Makefile.in:
Some more fixes for the makefile (an error when building PMCs, one when
15:25
TT #1145 created by allison++: [TODO] Deprecated extend/embed API functions for calling subs/methods 15:35
TT #198 closed by kjs++: PIRC segfaults on particular sequences of code. 15:41
TT #186 closed by kjs++: Something wrong with numbers
rrot: r42089 | allison++ | trunk/DEPRECATED.pod:
[cage] Add deprecation notice for C API functions for calling subs/methods.
rrot: r42090 | allison++ | trunk/docs/embed.pod:
[cage] Note the deprecated functions for calling subs/methods in the API
15:45
ttbot Parrot trunk/ r42089 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123226.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 15:49
dalek tracwiki: v16 | allison++ | CallingConventionsTasklist 15:50
tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff
tracwiki: v17 | allison++ | CallingConventionsTasklist
tracwiki: trac.parrot.org/parrot/wiki/Callin...ction=diff
TT #1146 created by kjs++: same code works on windows, not on mac 15:54
ttbot Parrot trunk/ r42090 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123249.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 15:55
16:10 joeri joined 16:51 fperrad_ joined
dalek rrot-linear-algebra: 5741559 | Whiteknight++ | config/Makefile.in:
add -fPIC to the commandline for the C compiler
17:03
17:13 chromatic joined
Whiteknight in git, how do I view the current working version? 17:16
I guess that would be the MD5 of the last commit/pull? 17:17
or for that matter, how do I just view some information about the current repo? 17:18
treed git status ? 17:22
purl git status is porcelain
treed that just tells you what branch you're on though
when you say repo, do you mean the local one or the one you're tracking?
17:23 theory joined
Whiteknight treed: the one I'm tracking I guess 17:24
like I want to get the path to the one I am tracking, and the last revision that I've pulled from there
dalek a: 4f842b3 | fperrad++ | (2 files):
fix target smolder on Windows
plobsing git log origin? 17:36
Whiteknight better, but still not quite what I'm after. I'll dig through some documentation later 17:37
dalek rrot-linear-algebra: 31fa507 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
add set_intger_keyed and get_integer_keyed VTABLEs
18:35
rrot-linear-algebra: 57ddb5c | Whiteknight++ | src/pmc/nummatrix2d.pmc:
we need to clearly differentiate between matrix size and maximum index (zero-indexed). This solves some of the resizing problem
Whiteknight purl msg darbelo: NumMatrix2D PMC builds now with "make". We can start writing tests. Also, we need a "make install" target so that we can use this PMC from other languages (Matrixy_ 18:37
purl Message for darbelo stored.
Whiteknight purl msg dukeleto: NumMatrix2D PMC builds now with "make". We can start writing tests for it now 18:38
purl Message for dukeleto stored.
18:49 masak joined
masak init::manifest - Check MANIFEST...No such file: src/gc/res_lea.c 18:49
anyone else getting that? 18:50
Whiteknight that file was deleted, I think 18:51
MANIFEST shoud have been updated
what rev are you using? 18:52
masak r42090 18:54
jonathan Did anyone start on getting Rakudo to build on pcc_reapply yet, out of interest? 18:57
If not, I'll start that effort tomorrow.
Whiteknight masak: works for me at r42090. Try realclean? 19:05
masak Whiteknight: I seem to be experiencing some kind of problems with my hard drive. so the problem is probably just here.
jonathan masak: That sounds un-fun. :-/ 19:07
masak jonathan: so far, it is. :/ I hope I'm wrong.
jonathan
.oO( now might be a good time to take a backup )
masak nod. there's some app doing that for me every 24h. 19:10
jonathan Ah, cool. 19:11
moritz wasted 4 hours yesterday due to a SATA cable that wasn't fixed properly 19:17
my own fault most likely
Whiteknight does a pure-PIR test harness exist anywhere? 19:31
I would rather not use one that's based on Perl5
dalek a: 63b8afc | fperrad++ | (2 files):
now we don't need to test against installed parrot-lua
19:33
Whiteknight it doesn't have to be PIR, but it should be some language that runs on Parrot
dalek TT #1147 created by plobsing++: [PATCH] update nci.pmc for pcc_reapply 19:36
19:39 mokurai joined 19:41 joeri left
jonathan looks for the profiler docs... 19:47
19:50 janus joined
jonathan OK, I'm kinda failing at working out how to run the profiling runcore. :-/ Where is the doc I can't find? 19:50
pmichaud_ I'm not sure it's documented
iirc, it's parrot -Rprofiler ...
pmichaud_ checks logs 19:51
moritz and then there's a script somewhere in tools/ or so that reformats the output into something that kcachegrind can work with
jonathan Ah, OK.
I just got KCacheGrind installed (an experience that reminded me exactly why I don't run Linux on the desktop).
And want to make pretty pictures. 19:52
;-)
pmichaud_ hmmm
installing kcachegrind for me was just
apt-get install kcachegrind
jonathan :-P
moritz apt++ 19:53
jonathan Yes, the Windows KDE installer was, erm... :-|
Don't get me wrong, I love Linux on the server.
pmichaud_ it was that for me on the desktop
jonathan aww 19:54
main: Unrecognized runcore 'profiler' specified.
ah 19:55
profil*ing*
pmichaud_ jonathan: irclog.perlgeek.de/parrot/2009-10-13#i_1598943 # might help 19:56
oh, I guess not.
anyway, -R profiling to parrot
19:57 mikehh_ joined
jonathan ooh! 19:58
Nice!
19:58 mikehh joined
jonathan It's made a file, and then told me what command to run to get the output that KCacheGrind will like! 19:58
Coke jonathan: yes. let me know if the line numbers are all wrong for you when it's done. 19:59
jonathan (whoever did that)++
Coke cotto++
chromatic++
mikehh stoopid internet connexctuion
jonathan Whee, the output for Rakudo startup is 34MB! 20:02
I think I'll let pprof2cg.pl off for taking its time over that. :-)
20:07 bacek joined 20:13 chromatic joined
jonathan cotto++ chromatic++ # Rakudo startup in KCacheGrind is pretty and informative. Thank you! 20:15
chromatic Are the line numbers and file names remotely accurate? 20:17
jonathan Note sure yet - the function names are what have been of most interest so far. The fact that it seems to think we spend 475% of our time in something feels a bit...odd...though .p) 20:18
chromatic KCG gets a little bit confused with continuations. 20:19
jonathan :-) 20:20
I'm still trying to work out what I'm really looking at.
dalek rtcl: 130f71f | coke++ | runtime/builtin/after.pir:
Avoid errors for non-numeric args to [after]
20:22
cotto There might be a bug or two remaining in the profiling runcore. ;) 20:23
jonathan chromatic: Do you understand what things like <cycle 3> as the sub name mean?
Well, or cotto. :-)
chromatic Turn off cycle detection.
jonathan chromatic: Details?
purl Details are important when programming or my program will not do what you thought you told it to
chromatic There are three big icons in the top middle; the rightmost controls cycle detection.
One of them is percentage, one is relative cost, and the other is cycle detection. 20:24
jonathan Aha
chromatic: Is there a simple explanation of what cycle detection is doing? 20:27
I mean, it seems to make the difference between a mega-pretty diagram of all the stuff we do on startup and where we spend time (if I understand it correctly, anyway). 20:28
Whereas with it off, it seems that it is more just an ordering of the things we spend most time in.
chromatic The most I understand is that it groups cycles of function calls by their branch.
Where does the cycle start? Where does it stop? They group by that. 20:29
dalek TT #1148 created by flh++: Implement "clone" method for CallSignature
jonathan chromatic: OK. 20:30
chromatic: With it off, I guess I'm getting in the flat view just a good idea of where we are spending time.
chromatic Good. 20:31
I almost never use cycle detection.
jonathan OK.
Wow. This is really informative.
bacek Good morning 20:34
chromatic bacek, want to help debug a patch? 20:36
bacek chromatic: sure, I've got about an hour before $dayjob
nopaste "chromatic" at 72.87.39.97 pasted "Use more macros in fill_results (bacek)" (115 lines) at nopaste.snit.ch/18447 20:37
chromatic I fail t/src/extend.t 17 and 18 with "named results must have a name specified" exceptions.
bacek chromatic: Looks like you can't use GETATTR to get underlying pointer. Try to add FIA.get_pointer and use it. 20:41
chromatic: wait... I'm wrong. It's FIA anyway
chromatic Yeah, it works everywhere else I've added it.
20:42 eternaleye joined
bacek chromatic: src/extend.c:1051 20:43
it should be FIA, not RPA
chromatic That'll do it.
bacek and replace push_integer with keyed access... 20:44
# push_integer() not implemented in class 'FixedIntegerArray'
chromatic Right. 20:45
bacek or I can do it and commit it independently from your patch 20:46
chromatic I'm running tests now.
bacek chromatic: passed on my box :) 20:48
chromatic Ditto. 20:49
bacek ship it! 20:50
chromatic Pushing now. Thanks, bacek. 20:51
dalek rrot: r42091 | chromatic++ | trunk/src/extend.c:
[extend] Made append_result() use FixedIntegerArray to note return value
chromatic fill_params() could use something similar.
bacek chromatic: r42091 slightly wrong. Let me commit my version :) 20:53
dalek rrot: r42092 | chromatic++ | trunk/src/call/args.c:
[PCC] Replaced more vtable calls with macros for improved performance in
20:54
20:56 eternaleye joined
dalek rrot: r42093 | bacek++ | trunk/src/extend.c:
Improve r42091 - expand old result_flags if they are present.
20:57
ttbot Parrot trunk/ r42091 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123413.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 20:59
Parrot trunk/ r42092 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123414.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ )
bacek 4803308618 21:03
(4831058690 - 4803308618) / 4831058690 * 100 21:04
purl 0.574409747027934
bacek chromatic: 0.57%
purl 0.0057
ttbot Parrot trunk/ r42093 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123452.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 21:06
dalek p-rx: 2c50f13 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
21:11
p-rx: 2bc2d2f | pmichaud++ | src/NQP/ (2 files):
Clean up name a bit.
p-rx: b613e0d | pmichaud++ | (5 files):
Add variable support.
bacek (4803308618 - 4745662108) / 4803308618 * 100 21:17
purl 1.20014170615593
21:17 Andy joined
dalek rrot: r42094 | bacek++ | trunk/src/call/args.c:
Return early in fill_params error check if there is no named arguments. Improve fib.pir by another 1.2%.
21:20
ttbot Parrot trunk/ r42094 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/123528.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 21:27
21:27 payload joined
bacek msg chromatic Let's merge CallSignature and Context. It can give us about 15% improvement. 21:34
purl Message for chromatic stored.
bacek $dayjob time 21:37
dukeleto i am attempting to get parrot to work on RTEMS with their core dev 21:38
we need to make a custom RTEMS hints file because it needs to be cross compiled 21:40
RTEMS is a real time OS 21:44
21:47 Morpheus joined
Morpheus Hi 21:47
moritz hi Morpheus
dukeleto hola 21:48
Morpheus Which Python implementation is nearer to finish?
moritz I think allison was working on pynie - doN't know what's the status is, though 21:49
21:53 patspam joined
mikehh All tests PASS (pre/post-config, smoke (#29386), fulltest) at r42094 - Ubuntu 9.10 beta (updated) amd64 21:55
21:57 mikehh joined 22:01 bacek joined 22:04 darbelo joined
dukeleto the RTEMS guys are going to give us a Makefile that works, then we can write a proper hints file and/or fix our crazy configure scripts 22:05
darbelo dukeleto: you want to cross-compile parrot? 22:07
dukeleto darbelo: yes. halp?
darbelo To a platform with no perl.
Ouch.
You'll need a big hints file. And some Configure.pl overrides. 22:08
dukeleto: Thats, sounds like some very painful *fun*. 22:11
Sign me up!
bacek passing darbelo book "Teach yourself BDSM with crosscompilation in 24 hours" 22:12
dukeleto darbelo: you can help me attempt to change our configure system to generate a given hand-tuned makefile 22:13
darbelo bacek: I did embedded development for a while, I don't need books to learn this stuff. 22:14
dukeleto darbelo: it is interesting, because RTEMS generates libs/includes for each os/platform/compiler combination
darbelo dukeleto: link?
purl or "Link is ... like ... this pointy eared goblin that walks around in midi-music land with a letter opener attacking circles and things and wooing princesses but not bannon, you know?" or preaction is Error.
dukeleto darbelo: www.rtems.com/ 22:15
darbelo purl: Shut up, I'm not talking to you!
purl darbelo: excuse me?
dukeleto purl, go play in traffic
purl wanders off to dent some cars.
darbelo dukeleto: I'm wandering in their wiki now. But I'm not sure what are you trying to coerce Configure into emitting. Can you clarify? 22:25
22:37 mikehh joined
dukeleto darbelo: for instance, our configure script picks up -fPIC from perl's compile flags, which is wrong 22:40
darbelo: the entire concept of using perl's compile flags is wrong
darbelo dukeleto: That's overridable from hints. We just need to override the hints file used. 22:41
perl Configure.pl --hintsfile=something
dukeleto darbelo: we will probably have to heavily change our configs 22:43
darbelo: yeah, about that. rtems has different header files needed for different steps, so we will most probably need to fiddle with how the hints files are used
darbelo: i would be pleasantly amazed if we only need to create an RTEMS hints file. 22:44
darbelo: we need to determine the current platform and then choose the correct header files and libs to use at each step 22:45
darbelo It whould be a *big* hints file, but I think it's a good start.
Anyways, gotta go now. Be back later.
dalek kudo: 6817b90 | jonathan++ | src/parser/actions.pm:
Turns out we already keep enough info around at compile time to have a good idea if we already saw a multi candidate of a given name. That means we can avoid many calls to !TOPERL6MULTISUB at startup when all it would do is determine it has nothing to do. Only a couple of percent, it seems, but every little helps.
22:46
kudo: 67a6a81 | jonathan++ | src/ (2 files):
Do some optimization work on the reblessing of subs into their Perl 6 classes at startup. Between a tweak in !fixup_routine_type and some small optimizations to the rebless_subclass op, we save roughly 20% off the startup time before this patch. profiling++ (chromatic++, cotto++, kcachegrind++ too).
cotto pie graph? 22:54
jonathan Mmmm...pie. 22:56
plobsing graphjam.files.wordpress.com/2008/0...&h=330 22:58
jonathan :-D 22:59
cotto: I fear it may be getting some of the source locations wrong. 23:00
cotto: However, my brain is kinda mushy today, so when it's less so, I'll try and get you a more meaningful/useful analysis on that.
23:01 davidfetter joined
jonathan cotto: The other thing (which I'm not sure what we can do about) is that I think it may be grouping all variants of a multi together. 23:02
23:03 kthakore_ joined
dukeleto davidfetter: 'ello 23:04
davidfetter hi dukeleto :)
23:05 s1n_mini joined 23:27 allison joined
cotto jonathan, thanks. I'll see about that. 23:28
jonathan cotto: BTW, I've only looked at this in kcachegrind so far. But I'm curious - if I want to take a sub and dig into where in it we're spending time (e.g. which ops are costly), do we have that info recorded too? 23:30
I mean, today I was able to massively optimize a dynop mostly by seeing it was the only likely thing in a sub that could be the really slow thing. But in other cases, it'd be harder to tell. 23:31
23:32 wknight8111 joined
pmichaud_ ...did the semantics for "make install-dev" change recently? 23:32
wknight8111 pmichaud_: yes 23:33
semantics for "make install" are now what "make install-dev" were
pmichaud_ when I do "make install-dev", it no longer installs the parrot binaries. 23:34
(and it used to do so)
wknight8111 pmichaud_: I don't know how everything got rearranged. But I know that you want "make install" now 23:36
pmichaud_ you mean that "make install" installs the -dev files also?
23:37 Zak joined
pmichaud_ shouldn't install-dev just do the same as 'make install', then? 23:40
i.e., this seems like an api change
whiteknight "make install" installs the dev files now, yes
dukeleto pmichaud_: install = what install-dev used to be 23:41
pmichaud_ okay, but install-dev needs to continue to do what it used to also
whiteknight I don't know how this fits with the deprecation policy. I just remember reading that it had changed at some point for some reason
pmichaud_ we have lots of instructions out that tell people they need to use "make install-dev" to build Rakudo
dukeleto pmichaud_: we got sick of telling people to install-dev and getting bug reports about it.
pmichaud_: please update them :)
pmichaud_ I agree with the change
23:41 Austin joined
pmichaud_ I agree that "make install" should install the dev files 23:41
but I think that "make install-dev" should continue to do what it did before also 23:42
dukeleto pmichaud_: it has only been changed in trunk, not in 1.7.0
pmichaud_: so all your docs are valid up to and including 1.7.0
pmichaud_ dukeleto: are you saying that "make install-dev" will work as before in 1.8.0 ?
if not, it's a change
dukeleto pmichaud_: no, i didn't say that
pmichaud_ it's a change that affects packagers 23:43
dukeleto pmichaud_: yes
pmichaud_: what does install-dev do now?
jonathan If anything, I'd expect install-dev to become an alias to install in this case.
pmichaud_ it fails to install the parrot binaries
I agree, install-dev should become an alias
I don't understand why there's even any discussion on this point.
jonathan Well, I guess first is to know: was this intentional, or just accidental? 23:44
It could always be the latter.
23:44 cottoo joined
pmichaud_ sure, it could be accidental. But it still needs to be fixed. 23:44
dukeleto jonathan: is what intentional?
pmichaud_ as opposed to "it still works in 1.7.0, so it's not an issue"
jonathan dukeleto: make install-dev not installing stuff that it used to.
dukeleto: It'll break at least the Rakudo build process. 23:45
But I highly doubt it'd only be Rakudo that is affected.
dukeleto jonathan: install-dev was renamed install, on purpose.
see the recent parrot-dev thread
darbelo wrote the patch, he might be good to ask. rakudo should probably just use "make install" 23:46
jonathan dukeleto: That's not the issue, it's that install-dev should then just be an alias to install, and subject to a deprecation cycle.
dukeleto jonathan: not sure how/if the dep cycle applies. that is a good question for allison 23:47
jonathan So it can be announced and people have a chance to migrate, rather than having to discover this for themselves.
pmichaud_: imnsho, just patch it to be an alias.
dukeleto jonathan: you guys don't read parrot-dev? ;)
pmichaud_ I've just read parrot-dev, it doesn't say anything I haven't already said.
dukeleto pmichaud_: then we have a bug and would greatly appreciate a patch 23:48
pmichaud_ the install-dev target used to have 'install' as a dependency. Now it no longer does. That's a bug.
jonathan Additionally, following parrot-dev should not be a requirement for developing a Parrot-targetting compiler.
pmichaud_ I will patch it then.
jonathan Go for it.
We have commit bits for a reason. :-) 23:49
pmichaud_ testing.
purl i guess testing is the best thing ever ZOMG
dukeleto jonathan: I would like to agree with you, but that just isn't the case yet
23:50 payload joined
jonathan dukeleto: Aye, but we should at least make an effort to try and move things in that direction. :-) 23:50
dukeleto jonathan: we try the best we can. I think we assumed that the install/install-dev change wasn't going to break stuff for y'all. obviously, we were wrong 23:51
bbiab
cottoo msg chromatic I'm seeing only a .17% difference in oofib performance between r41971 and r42085 running under callgrind and looking at the instruction count. What are you using to get the 2.144%?
purl Message for chromatic stored.
pmichaud_ I think the point of the deprecation policy is that parrot developers aren't free to make those sort of assumptions. 23:52
whiteknight dukeleto: ping
dukeleto whiteknight: pong but I am one foot out the door.... 23:54
whiteknight: plz msg me and I will be back in a few
23:54 Zak joined
whiteknight ok 23:55
23:55 eternaleye joined
whiteknight purl msg dukeleto: I'm interested in that RTEM stuff. never heard of that particular RTOS before, but I'm a big embedded guy. Let me know what information you have, what the plans are, and what work needs to be done. 23:56
purl Message for dukeleto stored.
jonathan whiteknight: oh hai. Did your :call_sig patch land at all, after pcc_reapply did?
23:57 eternaleye joined
Coke it looks like install now does "install-bin install-dev". 23:57
whiteknight jonathan: a prototype of it is in trunk now, yes
very very very limited, but should give you an idea 23:58
jonathan whiteknight: OK. I'm going to work tomorrow on getting Rakudo building, and then working if that needs extra effort, on trunk.
Then I can look at using :call_sig, for the performance wins.
And also it'll help me get some other aspects of the code into shape. 23:59
whiteknight jonathan: t/op/cc_params.t for the few working examples
literally nothing else works besides what's in that file, so don't even try