Parrot 3.3.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | trac accounts are wonky; talk to cotto, coke or whiteknight if you have trouble
Set by moderator on 10 May 2011.
NotFound Funnily enough, the comment about doing it is still here. 00:00
plobsing cotto_work: no, it is pluggable. I had a libjit-based framebuilder which worked as a plugin, but it is likely broken in the most recent round of NCI refactors.
but as far as core goes, yes, it is the only provided mechanism
NotFound Look at die_from_exception, line 118
plobsing the auto::frames config step and the --buildframes config parameter have been nops for nearly 2 years 00:01
whiteknight NotFound: We get past that point 00:02
die_from_exception calls Parrot_x_jump_out, which has no jump buff
then it calls exit()
NotFound What do you mean? That now we fail silently by design? 00:04
cotto_work It's not necessarily a good design. 00:05
NotFound Even abort is better. At least it can provide a backtraceable core. 00:08
00:09 atrodo is now known as atrodo_
NotFound Anyway, all that doesn't apply to the pbc loading issue, I seriously hope no one will attempt to load a pbc before initializing the interpreter. 00:10
00:10 atrodo_ left 00:11 atrodo joined
dalek rrot: 7a315db | Whiteknight++ | src/ (2 files):
set an api jump buffer in Parrot_api_make_interpreter, so we can try to catch exceptions thrown during interp initialization. Segfaults when we try to report the error, but we get some details out
00:13
rrot: 69ee128 | Whiteknight++ | / (2 files):
if we don't have an interp, print out an error message. If we do, try to print backtrace information (unlikely)
rrot: ae39eec | Whiteknight++ | / (20 files):
Merge branch 'master' of github.com:parrot/parrot
whiteknight plobsing: just pushed something. It's not perfect, but at least you get a message that initialization failed
at least the failures aren't silent now 00:15
ttbot Parrot 69ee1281 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/1329
plobsing whiteknight: you committed the testcase along with the fix 00:16
whiteknight lolfail
plobsing that's usually commendable, but not so much in this case
whiteknight ...no i didn't
... 00:17
dalek rrot: f5c6248 | Whiteknight++ | src/nci/extra_thunks.c:
remove fail
ttbot Parrot ae39eecc i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/1338
whiteknight ...see?
plobsing your mind tricks won't work on me, jedi
atrodo so whiteknight, is the slowness in method calls are because of method lookup?
whiteknight atrodo: far from it. method lookup is pretty quick. It's a vtable call and typically hash lookup 00:18
atrodo: PCC invocation is the biggest portion of it
fill_params is a beast usually, although those benchmarks I posted had no arguments
atrodo whiteknight> oh. I assumed PCC was faster than the lookup
whiteknight well, no explicit arguments 00:19
no PCC is a hog
NotFound whiteknight: backtrace information after a longjmp will not be very useful.
cotto_work whiteknight: have you considered adding a favicon to your site?
atrodo whiteknight> so it's fill_params that's the biggest time sink? 00:20
whiteknight cotto_work: I want to, but I can't find a picture of me giving the middle finger to a snippet of source code that scales down to 16x16
atrodo: I haven't valgrinded that benchmark. I don't know where the waste is
atrodo whiteknight: but that's your suspicion?
whiteknight atrodo: at that scale, with no arguments, I really don't know 00:21
plobsing whiteknight: we have an isolated 'find_method' op. you could lookup the method $x times and see how long that takes.
whiteknight plobsing: yes, that's true. I still don't think find_method vtable is going to be a big portion of that benchmark
I'll give it a spin 00:22
cotto_work whiteknight: the rage guy?
plobsing whiteknight: I'm not suggesting it does. I'm suggesting you prove it doesn't.
atrodo whiteknight: do you have something readily handy that I can valgrind? Will the code on your blog do the trick? 00:23
00:23 Caelum left
whiteknight atrodo: yeah, that's what I'm going to do. Cut out the test cases you don't want to see and grind it 00:23
ttbot Parrot f5c62483 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/1368 00:26
cotto_work whiteknight: you could use inf gc to avoid seeing its cost
whiteknight gist.github.com/965672 00:27
find_method takes up about 11% of that benchmark 00:29
atrodo: so find_method can be improved, but it's not the worst offender
cotto_work dukeleto: ping 00:30
whiteknight I'm going to run it again with a non-method sub call
3.171735s
so that's cheaper still. about 25% less than a method call with dynamic method lookup 00:31
atrodo aloha, winxed?
aloha atrodo: winxed is code.google.com/p/winxed/ or winxed.org/
whiteknight atrodo: plumage install winxed
atrodo aloha, plumage? 00:32
aloha atrodo: plumage is a package manager for Parrot or github.com/parrot/plumage
atrodo whiteknight: does it pull via svn?
whiteknight atrodo: git
dalek rrot: 0eef3cd | NotFound++ | src/embed/api.c:
fix C90 compliance
whiteknight er, plumage will use svn to get winxed
atrodo whiteknight: yea, that's tricky when svn isn't installed 00:33
NotFound plumage use whatever the package says in its metadata.
whiteknight ah
atrodo is not working on isparrotfastyet like planned 00:40
cotto_work slacker 00:42
cotto_work always works on everything exactly when planned
atrodo i know, seriously
cotto_work to the microsecond
whiteknight I don't think that method calls with static dispatch should cost significantly more than function calls, but they do 00:44
well, not significantly
atrodo how up to date is the PDD on PCC? 00:47
00:48 Coke left
KaeseEs atrodo: the mozilla version measured themselves against chrome and safari, what's isparrotfastyet going to use for the, erm, target? 00:48
00:48 Coke joined
atrodo KaeseEs: That's a downfall, we don't really have anything to compare against except our historical self 00:49
KaeseEs atrodo: i guess the first thing that comes to mind are some other VMs on the alioth shootout (despite its flaws) 00:51
atrodo KaeseEs: I considered that, but it never seemed like a useful test since it's not running the exact same source code like the mozilla version
KaeseEs: I'll probably invest in doing something like that at some point, but i have some refactors to do before that 00:52
whiteknight gist.github.com/965672
KaeseEs ah.
whiteknight atrodo: I don't know where the PCC PDD stands 00:53
atrodo last time i read anything about the internals of PCC it confused me with all of it's numbers in some registers and this order and that. I gave up 00:54
00:55 Coke left, Coke joined
atrodo whiteknight: You left the s at the end of the % different 00:56
whiteknight atrodo: think of it like a nice bonus
atrodo hurray! bonus!
whiteknight: gist.github.com/965709 so right in line with yours 00:57
whiteknight atrodo: your timings are significantly better than mind 00:58
I'm using an unoptimized Parrot
plobsing looks like find_method costs less than the noise in that test 00:59
atrodo whiteknight: heh, that'll teach me not to look at the percentages
whiteknight plobsing: yeah, that's what I figured. It has a cost, but it's not the lions share 01:01
10% about
PIC could help reduce that, but we have bigger fish to fry
plobsing 10%? did you look at atrodo's numbers? 01:02
whiteknight no, I don't look at anybody's numbers but my own
...on my system it's 10%
01:03 Coke left, Coke joined
plobsing in the numbers atrodo posted, dynamic method call was marginally faster than static 01:03
whiteknight damnit atrodo. Your inconvenient data is making me look stupid
plobsing which I would attribute to noise more than anything else
atrodo whiteknight: blame it on it being on a VM 01:04
whiteknight either way, vtable override is horrible 01:05
let's all agree on that
atrodo agreed 01:06
whiteknight I firmly believe that static dispatch methods should not be noticably slower than regular function calls 01:08
and I believe that all invocations should be noticably faster
01:10 Caelum joined
atrodo there's really no reason for dispatch to be that widely varied 01:12
01:13 woosley joined
atrodo needs to figure out callgrind 01:18
whiteknight > callgrind --just-do-it winxed test.winxed
I wish more programs had the --just-do-it option
atrodo ubuntu didn't install "callgrind" 01:19
plobsing atrodo: callgrind is one of the tools available to run from valgrind 01:20
atrodo plobsing: Aye, i got that, finally
plobsing I run it via "alias cg='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes'" 01:21
atrodo plobsing: thanks, that should help me figure out what i want and what i'm seeing 01:23
gist.github.com/965709 dunno what that means yet 01:26
plobsing atrodo: that means your using an unoptimized parrot and your performance is dominated by a sanity-checking register-access function 01:28
atrodo: you may want to run callgrind_annotate with --inclusive=yes 01:30
but only after you run an optimized build. benchmarking debug builds is pretty meaningless
01:38 whiteknight left
plobsing atrodo: I have some ideas related to benchmarking I'd like to run by you 01:46
01:50 rurban_ joined 01:52 rurban left, rurban_ is now known as rurban
dalek tracwiki: v1 | plobsing++ | ParrotDeprecationsFor3.6 02:23
tracwiki: add deprecation notes for TT #1931</a>
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
tracwiki: v32 | plobsing++ | ParrotDeprecations
tracwiki: add deprecation notice for TT #1931</a>
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
atrodo plobsing: sorry, got pulled away. what are you thinking? 02:25
02:27 Andy joined
plobsing a problem with benchmarking is that it is almost always special purpose and only relevant to a single machine 02:30
if we had a mechanism to abstract away the machine, we could setup benchmarks that anyone in the community could run on any machine and have these be comparable to each other 02:31
I was thinking a machine emulator such as bochs would be suitable for such a task
the end result might be that we could have community contributions to something like ipfy, but with much better scope and detail
sorear plobsing: we already have a machine emulator that counts instructions 02:32
chromatic uses it often
plobsing sorear: valgrind is inaccurate when it comes to wallclock time
I'd like something a little closer
dukeleto plobsing: i think a benchmark tests which calibrates itself once on a machine, and then tests relative performance changes against that 02:33
plobsing: I definitely have benchmarking planned for Jitterbug
plobsing sorear: in fact, in the recent 3.0->3.1 regression investigation, I valgrinded a simple benchmark which exhibited the regression wrt wallclock, but valgrind showed the opposite 02:34
arnsholt_ plobsing: One option for making comparable benchmarks would be normalising the scores, no?
atrodo plobsing: Ya, i'd like to see something like that happen sometime
arnsholt_ Assuming the times are normally distributed, run a suitable n number of runs, and normalise to zero mean one variance score
plobsing arnsholt_: no. different machines have different responses to changes. normalization will not fix that 02:35
atrodo dukeleto: I wondered earlier if ipfy and jitterbug could be combined
dukeleto atrodo: possibly. there sure is some overlap
plobsing take the recent 3.0->3.1 regression investigation as an example, bigmem machines saw regression, where average to small memory machines saw equillibrium or improvement
atrodo dukeleto: Too bad I haven't had enough time to work on ipfy, let alone look real closely at jitterbug 02:36
arnsholt_ Good point
plobsing basically the rule is that benchmarks are only comparable over a homogenous set of machines 02:37
atrodo plobsing: gist.github.com/965709 Does that look beter?
plobsing atrodo: yep, that is a more meaningful view you can see that Parrot_callmethodcc_p_sc dominates, but that fill_params only accounts for half of that 02:39
dukeleto atrodo: is the source of ipfy somewhere public? 02:40
atrodo dukeleto: github.com/atrodo/itfy although it doesn't reflect my upcoming refactoring yet
dukeleto atrodo: catalyst? 02:41
atrodo dukeleto: Correct
dukeleto atrodo: cool
02:44 hudnix left
plobsing atrodo: you might also want to look into kcachegrind. many people find it helps them understand the callgrind output better than the text reports. 02:46
atrodo plobsing: I'm seriously considering it 02:47
I think my problem is I want it to look like NYTProf
02:48 mtk left
dalek rrot: 9254cf3 | plobsing++ | api.yaml:
add deprecation notice for TT #1931 not ported over from DEPRECATED.pod
02:49
rrot: d5f1750 | plobsing++ | api.yaml:
mark TT #1931 deprecation as complete
02:51 preflex left
plobsing atrodo: kcachegrind does provide a source view 02:52
dalek TT #1931 closed by plobsing++: [DEPRECATED] advanced NCI parameter types 02:54
TT #1931: trac.parrot.org/parrot/ticket/1931
02:55 preflex joined, mtk joined 02:57 Andy left 03:10 bubaflub left 03:14 Andy joined
cotto ~~ 03:27
dalek rrot: e3492bf | plobsing++ | config/gen/makefiles/root.in:
NCI/call_toolkit_init.pbc no longer exists
03:30
03:35 benabik joined
plobsing seen japhb 03:44
aloha Sorry, I haven't seen japhb.
03:44 jjore left 03:45 soh_cah_toa left 04:16 jjore joined 04:40 ShaneC joined 05:15 Andy left 05:23 birdwindupbird joined 06:06 cottoo joined, cotto left 06:07 cottoo is now known as cotto
cotto my kernel oops, let me show you it 06:07
dalek rrot: 6032439 | mikehh++ | MANIFEST:
re-generate MANIFEST
06:33
mikehh plobsing: still get: gen::makefiles - Generate makefiles and other build files...value for '@cc_build_call_frames@' in config/gen/makefiles/root.in is undef at lib/Parrot/Configure/Compiler.pm line 572, <$in> line 95. 06:34
06:36 UltraDM joined
bacek ~~ 07:06
msg pmichaud "sin.t" is "regression" in rakudo. 2011.04 is doing much more work. E.g. Parrot_binding_bind_llsig 324_431 vs 253_792 calls on 04 vs 01. 07:09
aloha OK. I'll deliver the message.
bacek msg Same for GCable 17M vs 13M. 07:10
aloha OK. I'll deliver the message.
bacek msg pmichaud Same for GCable 17M vs 13M.
aloha OK. I'll deliver the message.
07:17 preflex left
bacek msg pmichaud s/04/bleed/ 07:19
aloha OK. I'll deliver the message.
07:20 preflex joined
bacek aloha, (191599 - 160450) / 191599 * 100 07:22
aloha bacek: 16.2573917400404
07:24 mj41 joined
dalek rrot: 3b374ae | bacek++ | src/call/args.c:
[pcc] Reduce GC pressure in handling named args.

Instead of creating new RSA with arg names iterate over hash directly. It gives some performance boost. 16.25% in instructions fetch according to valgrind on building rakudo's core.pm.
07:26
bacek aloha, 151/43*100 07:34
aloha bacek: 351.162790697674
bacek aloha, 151/43*
aloha, 151/43
aloha bacek: 3.51162790697674
bacek 43/151*100
aloha 28.476821192053
bacek msg whiteknight I misread stats. "GC" is accountable for 28% in core.pm. Including allocations. 12% was "collect" part only. 07:35
aloha OK. I'll deliver the message.
07:35 SHODAN left
tadzik bacek: this 16.25% in instructions fetch in instruction fetch, how does it impact overall performance? 07:54
bacek tadzik, less than 16.25% for sure.
Something like 15% I hope 07:55
tadzik well, that's expected
oh nice
bacek But it's on my box. And I can't trust my benchmarks anymore. 08:00
tadzik I can check that
bacek Just because it's quite different from pmichaud++ benchmarks.
tadzik, iwbn
08:07 baest joined 08:11 benabik left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_3_0-199-g3b374ae 08:15
Kubuntu 11.04 amd64 (g++)
tadzik I think I'll need a make clean before rebuilding
bacek: almost no changes in building core.pm 08:21
nopaste "tadzik" at 192.168.1.3 pasted "Latest patch timings for bacek++" (30 lines) at nopaste.snit.ch/44654 08:22
bacek tadzik, hmm. My expectations for 15% were quite high. I've got abut 5% improvements overall on my box
tadzik, are you running on 64 bits? 08:24
tadzik bacek: yes 08:26
bacek tadzik, gms behave quite... interestingly on 64 bits. 08:27
I have no idea why 08:28
dalek rrot/compiletime-git-describe: 51e393d | cotto++ | / (2 files):
add code to generate Parrot version macros as a separate PIR include
08:34
rrot/compiletime-git-describe: c2143de | cotto++ | / (6 files):
nuke auto::sha1 et al, make config_lib,pir rely on gen_version.pl's generated include
08:39 Khisanth left 08:48 Khisanth joined
dalek rrot/compiletime-git-describe: f0fcd38 | cotto++ | tools/build/gen_version.pl:
force sha1 and git-describe to be recalculated when running gen_version
08:53
mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_3_0-199-g3b374ae 09:06
Kubuntu 11.04 amd64 (g++ --optimize)
cotto msg dukeleto I'd appreciate your eye on the compiletime-git-describe branch, especially the bits that deal with Parrot::SHA1 et al and cache invalidation 09:11
aloha OK. I'll deliver the message.
cotto msg dukeleto I'm not entirely sure if continuing to cache those values is a good strategy, but I'll leave that to your judgment.
aloha OK. I'll deliver the message.
09:49 rurban_ joined 09:52 rurban left, rurban_ is now known as rurban 09:59 woosley left 10:07 frodwith left 10:08 frodwith joined 10:17 ShaneC left 10:24 ShaneC joined 10:36 mtk left 10:42 mtk joined 11:01 Psyche^ joined 11:07 Patterner left, Psyche^ is now known as Patterner, redicaps joined 11:15 redicaps left 11:21 mikehh left 11:41 woosley joined 11:44 spinclad left 12:03 hudnix joined 12:19 whiteknight joined
whiteknight Good morning, #parrot 12:20
12:36 bluescreen joined 12:37 whiteknight left, whiteknight joined 12:38 whiteknight left, whiteknight joined
Coke_ bacek++ 12:38
13:06 bluescreen left 13:11 bubaflub joined 13:18 benabik joined 13:21 bluescreen joined
benabik ~~ 13:44
bubaflub ~ 13:46
13:47 plobsing left, plobsing joined 14:21 luben_at_work joined 14:27 woosley left 14:35 redicaps joined 14:36 UltraDM left 14:56 luben_at_work left
pmichaud good morning, #parrot 15:19
benabik o/ pmichaud
Coke_ \\o 15:21
plobsing --- -..-. 15:24
benabik plobsing: I couldn't for the life of me remember what -..-. is. That's a rarity. 15:27
tadzik www.wolframalpha.com/input/?i=---+-..-. :) 15:29
plobsing ---... -.--.-
whiteknight nobody calls me an ox!
benabik tadzik: 1) Well, yes, I do have the internets. 2) -..-. /= -..- 15:30
tadzik 1) I suppose so, and 2) I know that
15:31 hercynium joined
whiteknight There's a difference between US and "International" versions of morse code 15:31
tadzik I suppose your IRC clients broke the link as much as mine
whiteknight actually, american morse code and ITU
Coke_ needs to get his bot in here. :P
benabik tadzik: Oh. D'oh.
tadzik --- .... .-.-.- -.. .----. --- .... .-.-.- 15:32
:)
benabik whiteknight: I think US hams use the ITU standard, although I could be wrong.
whiteknight I've never been a ham. I don't know 15:33
I also never learned morse code or ITU 15:34
benabik I never quite learned morse either, at least never well enough for the tests. Thankfully they don't torture people with that anymore.
Radio + sound card = me using morse code. 15:35
dukeleto ~~ 15:38
pmichaud msg bacek good catch on the recent sin.t regression -- regression was in code that handles rational numbers. Now fixed in rakudo ef6e8f4 (14% faster than previous rakudo-bleed). gist.github.com/966698 16:15
aloha OK. I'll deliver the message.
tadzik pmichaud: will it be possible to launch rakbench as a service which will run the tests after every commit and maybe notify the commiter if something interesting happened? 16:21
pmichaud tadzik: not likely.
I think "run after every commit" is misleading.
my experience this past week is that benchmarking releases is far more useful
dukeleto tadzik: i could make jitterbug run rakbench on every github push 16:22
pmichaud: and less work, too :)
pmichaud this is especially true given that "rakudo" really has two commit streams -- rakudo and parrot
tadzik dukeleto: yeah, I like how jitterbug shows the buildtime :)
pmichaud also, rakbench makes some very large log files
dukeleto tadzik: rakudo tests on jitterbug are still broken because I have not had time to look into what is messed up in the environment 16:23
pmichaud granted, we could cycle those somehow..
anyway, I'm not opposed to someone setting up a rakbench service, but I want to make sure rakbench stays more focused on being a useful forensic/development tool than being a monitoring service
atrodo pmichaud> I missed the link to rakbench, do you have it handy? 16:24
pmichaud github.com/pmichaud/rakbench
atrodo pmichaud> thanks
pmichaud also, rakbench runs can take a long time, depending on what's being benched.
16:25 redicaps left
pmichaud for example, running the full suite (without spectests) took 2 hours on my super-fast new desktop 16:25
tadzik 'oh 16:29
16:33 bluescreen left 16:45 mikehh joined, bluescreen joined 17:00 birdwindupbird left
pmichaud although, with the way that rakbench handles its log files it could potentially cache the results of previous runs 17:00
I think that gets a little suspect, though, because it makes it more likely other factors could come into play in the measurements 17:01
cotto_work ~~ 17:08
dukeleto cotto_work: greetings
cotto_work hi dukeleto 17:11
dukeleto: tell me about Parrot::Git::Describe and Parrot:SHA1's caching. Is there a reason to continue to do it if we want to make sure that the data it returns are never out of date? 17:12
*they return 17:13
dukeleto cotto_work: i guess i haven't been following closely. What is the problem with the way things work now?
cotto_work I'm working on trac.parrot.org/parrot/ticket/2106 , the goal of which is to make sure that what parrot_config sha1 and parrot_cofnig git_descibe always reflect the git commit that parrot was built with. 17:15
Part of that is to make sure there aren't any stale cached values lying around. 17:16
17:17 jsut joined, jsut_ left 17:26 benabik left
cotto_work dukeleto: in that context, do you see any reason to continue caching git_describe and sha1? 17:35
either that, or make them smart enough to know when to invalidate the cached data 17:36
17:36 mj41 left 17:38 benabik joined
dukeleto cotto_work: reading the tt now 17:40
cotto_work: we have a lot of configure-time tests for the git_describe stuff 17:41
cotto_work: those tests expect to know about the current sha1 before build time 17:42
cotto_work: so we need to decide how we want stuff to work
cotto_work: what happens if something wants to know the current git_describe output for parrot.git, before parrot has been built? 17:43
cotto_work: such as configure-time tests
cotto_work dukeleto: I'm not changing Parrot::Git::Describe and SHA1, just deleting the auto:: stuff.
dukeleto cotto_work: i am +1 to emulating what Rakudo does
cotto_work: feel free to nuke the caching stuff
cotto_work deal 17:44
dukeleto: why was it cached in the first place? Is it really slow on some platforms? 17:45
dukeleto cotto_work: svn revs were cached in the olden days, and that feature was migrated when I converted us to Git. But now that you ask, it is kind of dumb, since Git is so fast. 17:47
cotto_work: but the operation could take a few seconds
cotto_work: on slow HD's with bad I/O
cotto_work: so caching it is useful for some situations still
17:48 lucian joined 17:50 rurban_ joined 17:51 lucian_ joined, lucian left 17:52 rurban left, rurban_ is now known as rurban
pmichaud ....why would the operation be slow for git describe? 17:57
iirc, svn could be slow because it wanted to talk to the svn server
although maybe not for rev numbers
anyway, I'd say eliminate the cache and see if anyone complains 17:58
18:04 mj41 joined
sorear git describe can be slow because it's an O(N) operation in the worst case 18:05
dukeleto pmichaud: "slow" in the git world, not "slow" in the svn world :)
sorear it needs to find the nearest tag and count commits to it
dukeleto it is O(N), where N is the number of commits since the last tag
but in practice, since we create a tag every month, N is never very large
sorear could take as much as 15-30 seconds with a cold cache on an unpacked niecza repo with N=100
if you git gc often, it's not nearly so bad 18:06
also, if you use git rev-parse HEAD instead, that's instant
O(1)
dukeleto sorear: to get a commit SHA1, yes.
sorear: but we want a git describe string
so we definitely don't need to cache the current SHA1 18:07
but caching our git-describe string would be nice, but perhaps it is not worth the trouble
pmichaud msg bacek how did you determine the number of calls to Parrot_binding_bind_llsig? I'd like to be able to use that for my own tests 18:09
aloha OK. I'll deliver the message.
Coke_ a smarter cache would be nice. the current behavior has been an issue since the git cutover. 18:12
a minor one, to be sure.
dalek rrot/compiletime-git-describe: 5a96a78 | cotto++ | / (9 files):
remove Git::Describe and SHA1 caching, update tests, manifix
18:22
rrot/compiletime-git-describe: c7030af | cotto++ | config/gen/makefiles/root.in:
fix config.fpmc depenency on parrot_version.pir
cotto_work Coke_: done fsvo "smarter". 18:39
18:45 mj41 left 19:06 soh_cah_toa joined 19:28 ShaneC left
soh_cah_toa whiteknight: hey 19:33
whiteknight soh_cah_toa, hello
soh_cah_toa whiteknight: i came across the book "parrot developer's guide" on amazon and noticed you were one of authors 19:34
whiteknight: how up to date is that book?
whiteknight: i mean, is it worth getting or is docs.parrot.org just as good or better? 19:35
whiteknight not up to date. Not worth getting
all the text of it is in the repo
in /docs/book
soh_cah_toa i thought so 19:36
19:42 ShaneC joined 19:45 ShaneC left
whiteknight I don't feel like we are ready to try writing a new book or updated version yet 19:51
not enough about Parrot usage has changed since that last book was written, and we haven't seen enough general improvements
after some object model improvements, and maybe some PCC changes, we might be readyu 19:52
if we have a nice debugger to talk about, that would be hot too :)
benabik PCC?
whiteknight Parrot Calling Conventions
benabik aloha: PCC?
aloha benabik: PCC is a hog
whiteknight that's the dynamic dispatch and parameter passing mechanism
aloha PCC is Parrot Calling Conventions
aloha whiteknight: ... but PCC is a hog ... 19:53
whiteknight damnit bot!
benabik aloha: PCC is also Parrot Calling Conventions
aloha benabik: Okay.
benabik aloha: PCC?
aloha benabik: PCC is a hog or Parrot Calling Conventions
benabik has to go to class.
whiteknight aloha needs to do more what I mean, and less what I say
benabik aloha: No, PCC is Parrot Calling Conventions
aloha benabik: Okay.
benabik read aloha's help a couple times. :-D
But I should really run, not walk, to class.
19:53 benabik left 19:54 TiMBuS left 20:00 ambs joined 20:07 ambs_ joined, ambs left, ambs_ is now known as ambs 20:09 whiteknight left, whiteknight joined 20:20 ambs_ joined, ambs left, ambs_ is now known as ambs 20:21 Coke left, Coke joined 20:25 whiteknight left
pmichaud Parrot's bug reporting system appears to be very hostile to anyone that actually wants to report a bug: see the saga at irclog.perlgeek.de/perl6/2011-05-11#i_3718015 20:31
be sure to read through at least irclog.perlgeek.de/perl6/2011-05-11#i_3718235 20:32
20:32 TiMBuS joined
cotto_work pmichaud: trac accounts got fubar'd due to some issues with the VM *.parrot.org runs on. Still, we need to either make parrotbug useful, delete it or hide it better. 20:35
20:36 Coke left 20:37 Coke joined
NotFound dukeleto: ping 20:37
pmichaud not just parrotbug, but the entire reporting system (at least as it exists now)
even once we decided not to use parrotbug, colomon couldn't submit the ticket 20:38
cotto_work pmichaud: he can now. We had to disable allowing registered users to submit tickets due to excessive spam. 20:39
moritz cotto_work: did you read the discussion? 20:40
cotto_work moritz: I updated his permissions. 20:41
moritz cotto_work: aka "no"?
cotto_work moritz: I saw that once he logged in, he got the message that he didn't have the necessary bit to create a ticket. The other problems are also legitimiate, but that looked like the most immediate one and the easiest to fix. 20:42
moritz ok 20:43
dalek TT #2107 created by colomon++: "Failed to load libpcre" during build
TT #2107: trac.parrot.org/parrot/ticket/2107
tadzik did my account broke too? 20:44
cotto_work tadzik: can you log in?
tadzik Invalid username or password
I'll reset it maybe 20:45
cotto_work tadzik: see privmsg
dukeleto NotFound: pong 20:48
pmichaud: yes, i want to fix those hostilities 20:49
i vote for making parrotbug actually send an email to a parrot-bugs mailing list
moritz tadzik: mine won't let me in either
NotFound dukeleto: What should I do to access the gcc compiler farm? Just to fill the form and mention your name?
pmichaud msg bacek fwiw, here's the latest rakudo-bleed timings (fixed some of the sin regression): gist.github.com/967313 20:50
aloha OK. I'll deliver the message.
dukeleto NotFound: yeah, just say that you are helping with Parrot Virtual Machine and mention my gcc username, which is "leto"
NotFound dukeleto: 206. leto on the wiki page?
dukeleto we could also make parrotbug open up a Trac Ticket
NotFound: yeps
NotFound Ok, I'll fill the form today and see what I can do with that beast. 20:51
cotto_work NotFound: great!
Coke_ (make parrotbug open a ticket) which it will, if you email it to the correct addres. 20:52
(as email2trac has been installed for sometime.)
pmichaud what's the addr?
can it go into docs/submissions.pod ? That's what we were looking for in the first place. :-/
Coke_ it's either tickets or parrot-tickets
IIRC.
one is for Talking to trac, one is for people to sub to so they can see ticket updates. 20:53
pmichaud can there be a parrotbug@... email addr? that would be more canonical
Coke_ Not my call.
I don't care what it is, if it's advertised. 20:54
pmichaud Mine either. But submission via email is what we wanted but couldn't find.
Coke_ (and canonical... in what sense? In that it would match rakudo?)
anyway, it's there, it's just not advertised.
20:54 ambs_ joined 20:55 ambs_ left
Coke_ email to tickets@parrot.org will create a new ticket. 20:55
20:56 ambs left
Coke_ see #2108. 20:56
(in that it created that ticket, not that that ticket says anything helpful)
Enjoy.
pmichaud "canonical" in the sense that it's also the name of the tool Parrot provides to report bugs. :-) 20:57
20:57 ambs joined
tadzik g'night #parrot 20:58
dalek TT #2108 created by coke++: We need a way to automatically create tickets...
TT #2108: trac.parrot.org/parrot/ticket/2108
TT #2108 closed by coke++: We need a way to automatically create tickets...
TT #2108: trac.parrot.org/parrot/ticket/2108
TT #2108 reopened by coke++: We need a way to automatically create tickets...
TT #2108: trac.parrot.org/parrot/ticket/2108 20:59
Coke_ changed 2108 into our "please doc this and also make it really work" ticket. 21:00
dalek rrot: 9ba6ab1 | pmichaud++ | docs/submissions.pod:
[docs] Update submissions.pod with ticket@parrot.org address.
21:01
21:04 bluescreen_ joined 21:06 particle left 21:07 jsut_ joined 21:08 particle joined 21:12 jsut left 21:21 bluescreen__ joined 21:22 spinclad joined 21:25 mj41 joined 21:30 ambs left 21:33 spinclad left
mj41 Coke_: Hi. You can try start your taptinder client again. 21:34
21:39 theory left 21:40 bluescreen left, bluescreen__ left, bluescreen_ left
bacek good morning, humans 21:43
pmichaud, ping
msg pmichaud I'm using valgrind --tool=callgrind for getting numbers. 21:44
aloha OK. I'll deliver the message.
bacek msg pmichaud I suspect I can't make rakudo faster anymore on your box by tuning GC. Looks like with 8G of memory GC isn't triggered often enough. (Apart from rx.t test which actually creates a lot of GCable) 21:54
aloha OK. I'll deliver the message.
dalek rrot: 3dbd5d8 | bacek++ | src/pmc/capture.pmc:
Mark Capture.list and .hash with :manual_wb pragma.

This prevents auto-triggering of WB and should speedup at least PCT's POST and PIR stages.
22:14
22:29 mj41 left, cotto left 22:33 whiteknight joined 22:34 kid51 joined 22:44 athomason joined 22:47 whiteknight left, whiteknight joined 22:50 athomason left 22:53 athomason joined 22:56 whiteknight left, whiteknight joined 22:57 whiteknight left, whiteknight joined 22:59 alh joined
whiteknight good afternoon, #parrot 23:00
sorear Has OSUOSL told us *what* is going on yet? 23:01
whiteknight with trac? no
sorear Or just "Y'all have to change your passwords and we're under NDA as to why"?
whiteknight smolder ate up all available disk space, and I guess that must have screwed up trac somehow 23:02
KaeseEs not such a good afternoon. finals loom :( "sing in me muse, and through me tell the story of that engineering student skilled in all ways of bullshitting, the hacker, harried for semesters, until he plunder the proud heights of data structures and algorithms..."
whiteknight KaeseEs: what classes do you have finals for? 23:03
KaeseEs comp arch, algorithms, comp org 23:04
whiteknight oh, that's not so bad
KaeseEs yeah it's reasonable but it's my nature to be filled with dread regardless :v 23:05
23:05 janus left
whiteknight is slowly trying to add a new color theme, and it's a lot of trial-and-error 23:07
the themeing capabilities are ...rough 23:08
23:15 theory joined 23:17 kid51 is now known as kid51_at_dinner 23:21 hercynium left
NotFound whiteknight: I've read your post and I think we can do some proof of concept tests right now. 23:26
whiteknight how? hand-crafted PASM?
NotFound Just by using :call_sig 23:27
whiteknight no, that still goes through fill_params 23:28
it creates a CallContext, and stores a second CallContext inside it, I think
23:28 janus joined
whiteknight I have to look 23:28
NotFound Yes, but it will test the ability to hand encode and decode params fast.
Also, I think :call_sig bypasses most of fill_params 23:29
whiteknight :call_sig is kind of a hack right now. We might be able to make it faster 23:30
bacek_at_work ~~
NotFound Yes, but for proof of concept tests may be enough.
bacek_at_work our PCC suck big time.
whiteknight we also could hand-craft some PASM to make faster calls. But we would still need to add a 3-argument invokecc
bacek_at_work: yes, we already know that :) 23:31
bacek_at_work We allocating intermediate storage just to pass args
whiteknight bacek_at_work: did you see my blog? I want to kill all that
I want to kill fill_params, signatures, and loops
bacek_at_work whiteknight, I did.
whiteknight bacek_at_work: do you think that's a good strategy, or can we do better? 23:32
bacek_at_work You can't kill fill_params. Just because it's shaded between C and OPs
shared
whiteknight we can stop using fill_params for PIR->PIR calls
bacek_at_work whiteknight, your approach will not buy us anything.
you just move same logic to PIR 23:33
Until after we'll kill PCC_CELLs in CallContext we can't get any performance boost.
whiteknight bacek_at_work: either way, I think it's much cleaner and better for users 23:34
and our current system has thread-safety issues too
bacek_at_work may be.
afk 23:35
whiteknight I wonder how we would get rid of PCC_CELL
what's the most expensive, allocating/managing them, or accessing data in them? 23:36
I can't do any valgrinding tonight, unfortunately 23:37
NotFound I don't understad the threading issue. Another thread should use another context.
23:38 pjcj left
whiteknight It stores the context in interp 23:42
NotFound Now, that threads are still supposed to have its own interpreters. That must change. 23:44
whiteknight regardless, we shouldn't store temporary data in the interp between ops 23:45
KaeseEs was this prompted by the thread::tbb discussion on the list or is it its own thing btw?
whiteknight we can pass the CallContext to invokecc
KaeseEs: this is something else
23:45 rurban_ joined
plobsing whiteknight: invokecc is short for invoke-with-current-continuation. by definition it *needs* to take a continuation 23:48
23:48 rurban left, rurban_ is now known as rurban
plobsing and we already have an op to do that: "invoke" 23:50
NotFound I'm starting to think that the big issue is VTABLE_invoke 23:51
Its *next argument is not nearly enough for its tasks. 23:52
whiteknight plobsing: the continuation is not what I want to pass to invokecc, the CallContext is 23:53
invokecc only takes the sub to invoke, not the CallContext
invoke takes the sub and the return continuation, still no CallContext
plobsing what's the difference? callcontext is a big part of the environment that needs to be captured to create a continuation. 23:54
whiteknight the CallContext where the continuation is created, not the one that is going to form the execution environment for the called sub 23:55
plobsing ah
whiteknight and either way, there's still no reason why we should be storing the CallContext in the interp, at least not before we actually make the call
admittedly it hasn't been problematic so far to do it this way, but I don't think it's a good thing 23:56
bacek_at_work no, Continuation created in Sub.invoke
which responsible for about 15% of GC pressure
whiteknight bacek_at_work: that code is spread out in NCI.invoke and others too. It's a mess 23:57
15% of gc pressure for making return continuations? That's horrible
bacek_at_work we are creating too many GCable on each PCC call. 23:58
NCI.invoke doesn't create Continuation btw
whiteknight bacek_at_work: you're right. I was getting that confused with the tailcall code 23:59
it's the tailcall code that's spread out all over and is a mess