HAPPY BIRTHDAY #PARROT! | www.parrot.org/ | 1.4.0 | For 1.5: Remove Deprecated Features | planet.parrotcode.org/
Set by moderator on 14 August 2009.
dalek nie: r86 | allisonrandal++ | trunk/setup.py:
Build the Pynie executable by default, which requires Parrot version 1.4.
00:01
Whiteknight the corevm make target is wonderful 00:03
I dont know why nobody thought about that sooner
00:08 gigabo left 00:14 Khisanth joined 00:16 patspam joined
cotto I wonder why GEN_LIBRARY is part of the target, though. 00:17
00:31 MinorToken joined
mikehh cotto: you are involved with decnum_dynpmcs are you not? 00:34
cotto I'm darbelo's mentor. 00:36
If I'm not involved, I should be. ;) 00:37
mikehh I just didn't see darbello around
cotto seen darbleo 00:38
purl I haven't seen 'darbleo', cotto
mikehh I built it and make test passed with gcc - but it would not build with g++ - it doesn't like enum rounding as an INTVAL (g++ that is)
cotto seen darbelo
purl darbelo was last seen on #parrot 23 hours, 13 minutes and 12 seconds ago, saying: It claims to be "Just another email2trac test", maybe that means email2trac works now.
dalek rrot: r40551 | cotto++ | branches/pluggable_runcore (2 files):
[profiling] minor code cleanup and typo fixes
00:39
cotto Feel free to msg him. He's here often enough that he'll see it.
nopaste "kid51" at 70.85.31.226 pasted "Test failures in pluggable_runcore branch at r 40550." (51 lines) at nopaste.snit.ch/17553 00:41
Whiteknight !!!
Whiteknight thinks he got the lazy GC allocator working
kid51_at_dinner Those failures were in make examples_tests 00:42
cotto I'm surprised that r40550 builds. It has a rather silly typo that should break the build. 00:43
mikehh ./decnumcontext.pmc: In function ā€˜void Parrot_DecNumContext_thaw(parrot_interp_t*, PMC*, visit_info*)’:
./decnumcontext.pmc:102: error: invalid conversion from ā€˜INTVAL’ to ā€˜rounding’
cotto kid51, examples_tests looks fine now. 00:45
mikehh plus the similar at line 241 then exits - that's with g++
00:46 bacek joined
cotto hail, bacek! 00:47
Whiteknight anybody here know anything about benchmarking? 00:48
because I'm a n00b at it
chromatic: ping
dalek rrot: r40552 | whiteknight++ | trunk/src/gc (4 files):
[gc] add in a completely lazy GC allocator. Disabled by default, can be enabled by setting GC_USE_LAZY_ALLOCATOR in src/gc/gc_private.h to 1.
00:50
cotto Whiteknight, www.zedshaw.com/essays/programmer_stats.html
Whiteknight are you saying I don't know statistics?
cotto do you? 00:51
purl do you is it compulsory? ;)
kid51 Smolder is back. 00:52
Whiteknight I took a lot of statistics classes back in school 00:53
so the answer is no, I don't know statistics anymore
:)
mikehh whiteknight: depends what you are trying to benchmark - essentially it involves comparitive timings :-} 00:54
sorry 00:55
Whiteknight: depends what you are trying to benchmark - essentially it involves comparitive timings :-}
case sensitive
purl rumour has it case sensitive is at geekz.co.uk/lovesraymond/archive/mundane-name
Whiteknight my IRC client isn't case sensitive 01:00
mikehh ok that's good 01:01
Whiteknight so I have four GC configurations that I want to compare. The measurements are mostly going to affect startup time 01:02
so I think that running a benchmark that causes parrot to startup more frequently, like the coretest target, would be a good thing 01:03
dalek rrot: r40553 | whiteknight++ | trunk/src/gc (3 files):
[gc] move a bunch of macros together in the GC for cleanliness. Plus, I'm going to be twiddling these values, and it's easier for me if they are all in the same place
Whiteknight so for each configuration I want to "make coretest" a fixed number of times, and compare total times
Three questions: (1) how many times to run it, (2) how do I repeat a command X times in bash, and (3) how do I time it 01:04
mikehh simplest way is to date run test date etc 01:05
Whiteknight ...I don't understand what you just said at all 01:06
mikehh or use perl with one of the Time modules
depends on the granularity you require on the timings 01:07
Whiteknight low granularity. 1s? 01:08
I imagine I'm going to want to see several seconds difference between different runs for there to be anything of a statistical significance 01:09
bacek good morning parrot 01:10
Whiteknight good morning bacek 01:11
bacek Whiteknight: for i in seq 10; do /usr/bin/time make coretest; done 01:12
Whiteknight: good morning ;)
eternaleye Whiteknight: `time sh -c 'for i in {1..10}; do make coretest; done'` will run make coretest ten times and give the total
bacek: you type fast
bacek: Also, some Unices (including a few versions of Solaris) don't include a 'seq' binary, though {1..10} ranges are POSIX-required 01:13
bacek eternaleye: heh :)
eternaleye bacek: And doesn't for take a space-separated list of items, which would require 'seq 10' to be in backquotes? 01:14
if takes a binary to execute, for takes text 01:15
bacek eternaleye: no. At least it works in bash and tcsh.
eternaleye hm
bacek: in sh (not bash) it 'for i in seq 10; do echo $I; done' says 'seq\\n10' 01:16
Whiteknight anybody here on Linux x64? 01:17
eternaleye s/I/i/
mikehh I am
eternaleye bacek: So that isn't POSIX compliant
bacek it probably should be backticket
mikehh Ubuntu 9.04 amd64
eternaleye Whiteknight: I'm on Exherbo amd64
Whiteknight eternaleye: what is sizeof(PMC) on your system? 01:18
eternaleye Whiteknight: How would I check that? 01:19
Whiteknight i don' know, that's why I asked :)
don't worry about it, I'll figure it out 01:20
eternaleye Whiteknight: I might have an idea
Whiteknight 48 01:21
eternaleye Whiteknight: I got the same thing
(gdb) p sizeof(PMC)
Whiteknight okay, so the GC allocates 213 PMCs initially on x64 systems 01:22
426 on x86 systems
neither of those numbers are even remotely intelligent choices
eternaleye ~10KB
(on amd64) 01:23
Whiteknight eternaleye: while you are in gdb, what's the size of STRING and Buffer?
eternaleye STRING: 72 Buffer: 24 01:24
Whiteknight awesome. Thanks!
eternaleye np
dukeleto 'ello 01:25
Whiteknight hello dukeleto 01:26
you've been kicking some ass in the ticket queue today
time sh -c 'for i in `seq 10`; do make coretest; done' 01:32
thta's the command I had to use, none of the other suggestions ran the tests more then once 01:33
the {1..10} thing did't work
cotto: ping 01:34
cotto Whiteknight, pong 01:35
Whiteknight cotto: have you been doing any profiling work at all?
I'm trying to get an estimate for the number of PMCs that are allocated on startup 01:36
cotto Just add some code to whatever gets a new PMC header.
e.g. print to stderr or a temp file 01:37
Whiteknight yeah, I was hoping somebody would just have that number available, I seem to remember chromatic had figured it out a while back
I'll have to wait about 15min, I'm running a test benchmark now
cotto I remember getting a number, but I don't recall what it is or how accurate it'd be now. 01:38
better just to get a current figure
Whiteknight yeah, working on that now. Thanks 01:47
1159 for "hello world" 01:49
actually, that doesn't count pmc_new_noinit 01:50
01:52 TiMBuS joined
Whiteknight 1440 regular PMCs (not including constant PMCs or temporary PMCs) 01:54
kid51 Wow! a patch I submitted to a core module in April 2005 finally made it into CPAN today! 01:57
cotto istr something around 1500 01:58
kid51, speedy! 01:59
dukeleto Whiteknight: thanks, glad that you noticed ;) You are doing the release on Tuesday, right? 02:01
Whiteknight yes 02:02
dukeleto kid51: that is why my coworkers calls perl 5 "geologically stable"
Whiteknight kid51: better late than never!
cotto kid51, where's the patch? 02:03
GeJ Good morning everyone.
dukeleto Whiteknight: shall I remove the Random PMC as part of trac.parrot.org/parrot/ticket/871 or create a different ticket ?
GeJ: good localtime()
kid51: this is because my coworker and I fixed a bug in the perl 5 debugger which got into blead, but they wanted nothing to do with it for 5.10.1 and who knows when that fix will get deployed to the rest of the world 02:04
Whiteknight dukeleto: was it deprecated? 02:06
dukeleto Whiteknight: from DEPRECATED.pod : random [eligible in 1.1]
Whiteknight then yes. kill it
dukeleto sets mode to "KILL KILL KILL" 02:07
i figured it should be part of 1.5 since our focus is removing deprecated features
kid51 cotto: the original bug report and patch were here: rt.cpan.org/Public/Bug/Display.html?id=12401 02:09
cotto: The updated code is here: cpansearch.perl.org/src/LDS/CGI.pm-.../Pretty.pm
dukeleto: Well, I don't want to come anywhere near those Perl core arguments. 02:10
dukeleto kid51: yeah, it is for the best
kid51 Am currently expending my energy on a dual-life module: ExtUtils::ParseXS
Refactoring TimToady code. Painful. 02:11
dukeleto kid51: that is because you are altering the code-time continuum
kid51 Oh, please don't accuse me of that.
Next you'll be accusing me of violating the Prime Directive!
02:15 MinorToken joined
dukeleto can anyone think of any tests that they would like to see for pbc_disassemble and pbc_info ? I have some basic ones, but I have never used these utils before 02:16
Whiteknight: what is the policy on breaking examples and HLL's that rely on deprecated features that should be rightfully deleted ? 02:26
Whiteknight we put a deprecation notice in, and after the next point release (1.0, 1.4, 2.0, 2.6) that feature gets removed 02:27
and anybody still relying on it should know better
dukeleto sounds good to me. only 4 examples have to be changed, which should be trivial 02:28
treed Where do deprecation notecis go?
notices
cotto treed, DEPRECATED.pod in svn root 02:29
and they should also have an associated TT
dukeleto should we have coding standard tests about examples without tests? 02:30
cotto ? 02:31
kid51 IIRC, the point of make examples_tests was to run the code in the examples -- but I've never poked around there much.
treed "eligible in 1.5" means that it can be removed in 1.5 or after 1.5? 02:33
cotto It means that the feature may not exist in 1.5, i.e. it can be removed any time. 02:35
(iiuc)
02:35 janus joined
treed And the alternatives for these already exist? 02:35
cotto good question 02:36
purl Yeah, it is. I'm stumped.
kid51 treed: In practice, no, the alternatives may not yet exist. 02:37
treed But they're eligible for removal?
It'd be nice if the document said which ones the alteratives exist for.
kid51 That's why deprecation means "eligible for removal starting in 1.5"
dukeleto kid51: examples_tests tests the tests that we have for examples. I am talking about tests that fail when no tests for examples exist :) 02:38
kid51 dukeleto: Well, how would you phrase the coding standard? (We have to put something into docs/pdds/pdd07_codingstd.pod before we can add a t/codingstd/*.t test for it.) 02:40
dukeleto kid51: A TODO test should be added for each directory in examples/ that does not have a corresponding file in t/examples . So the directory examples/foobar should have a corresponding test t/examples/foobar.t 02:42
currently some really important examples fail this, like opengl and sdl, which also happen to use the Random PMC :) 02:43
i can modify their code to use the rand dynop(), but I don't currently have any tests to run 02:44
kid51 Well, I recommend you create a TT for this. We even have a 'codingstd' tag you can apply to it :) 02:45
dukeleto kid51: on it 02:46
dalek TT #922 created by dukeleto++: Coding standard tests for examples/ directories without tests 02:52
kid51 dukeleto: Ummm, you're assigning that ticket to me? 02:54
I was merely suggesting the way to raise the question. I wasn't necessarily agreeing that it should be done. 02:55
dukeleto kid51: i didn't assign it to you. I think the coding_standard flag auto-assigned it to you?
kid51 That is weird. I never heard of that.
dukeleto kid51: just reassigned it to me
kid51 Thanks, I'd suggest that the first part will be to prepare a patch for that PDD. Only if people like allison, coke, particle, etc. buy the PDD will it succeed. 02:57
dukeleto kid51: perhaps firefox auto-filled a field that I wasn't looking at. totally accidental, sorry
kid51 np 02:58
kid51 must sleep
purl $kid51->sleep(8 * 3600);
03:02 davidfetter joined
japhb dukeleto: I see you pinged me. (By dint of saying 'OpenGL' in an open channel :-). What's up? 03:13
dukeleto japhb: opengl uses the random pmc which I am killing. it is easy to change over to the rand() dynop, but it doesn't seem that examples/opengl/* has any tests 03:14
japhb dukeleto: How would you test an OpenGL example? :-) (Not that it can't be done, I'm just curious what you had in mind.) 03:15
dukeleto japhb: yeah, it is difficult. at least a test that it compiles would be nice. 03:17
japhb dukeleto: But we can't depend on that ... because we don't know whether someone has it. I suppose the test could skip if the config has no OpenGL ... 03:18
dukeleto japhb: yep, that is what all the parrot_utils tests do
japhb dukeleto: all right, drop me a TT for it, I'll try to get to it. Is your change supposed to be landing for 1.5?
dukeleto it is a very basic test, but it is also very important and points out to us when an old example passes a deprecation point 03:19
japhb dukeleto: That's fair, as long as the testers don't ignore the fact when it's skipping (and thus telling them nothing other than that they configured without opengl). 03:20
dukeleto japhb: yeah, 1.5 . it will probably land sometime later tonight :) We have rand() dynops now. I can fix the opengl examples if you like
i was going to do it as a part of deleting the random pmc
japhb dukeleto: I think the only one that needs to change is shapes.pir; the only other uses of 'rand' are in Perl 6 code. 03:21
dukeleto wow, the random pmc had a whopping 2 tests
japhb dukeleto: and thanks. :-)
What algorithm is the rand op using? 03:22
dukeleto japhb: it just uses Parrot_srand and Parrot_float_rand 03:28
japhb dukeleto: *zoom* 03:29
dukeleto japhb: yes, the dynop should hopefully be considerably faster than the RandomPMC :) 03:31
japhb Oh, heh, that's good to know, but not what I meant. I meant "zoom in to the next level of detail". It's roughly like I said "How does a (gas) car generate power?" and you said "With an internal combustion engine." to which I replied "Care to zoom in on that a little?" :-) 03:33
dukeleto japhb: gotcha 03:36
and I think I just discovered an "accidental feature" in my dynop implementation
japhb There's an old story about some famous physicist being asked in his PhD defense "Why is the sky blue?" and he replied "Rayleigh scattering", and the questioner kept asking for more detail until the grad student had reached deep down to the QED equations, thus earning his PhD.
dukeleto: heh.
dukeleto japhb: I was a phd student once, and I believe it. 03:40
japhb: it is based on rand48 and friends 03:42
japhb: X(n+1) = ( aX(n) + c ) mod 2^48 03:43
GeJ clock? 03:50
purl GeJ: LAX: Fri 8:50pm PDT / CHI: Fri 10:50pm CDT / NYC: Fri 11:50pm EDT / LON: Sat 4:50am BST / BER: Sat 5:50am CEST / IND: Sat 9:20am IST / TOK: Sat 12:50pm JST / SYD: Sat 1:50pm EST /
03:51 chromatic joined
japhb dukeleto: Ah, standard LCG then. 03:52
dukeleto: fast, but relatively low quality. Is it pluggable in any way? 03:53
(The fact that it's a 'dynop' would indicate so, but I haven't spent any time reading up on them.)
dukeleto japhb: i think it could now easily be made pluggable, but there is currently no option 03:55
japhb dukeleto: gotcha.
dukeleto it can be pluggable and changed without recompiling parrot, now that it is a dynop
dynops are basically ops that don't require you to recompile parrot, they are dynamically loaded 03:56
japhb .so or so?
well, I'll see in your diff, I'm sure 03:57
dukeleto japhb: .so 04:04
japhb dukeleto: thought so, thanks.
dukeleto: sorry for my terseness in a few places; I was keeping a toddler from running amok. :-) 04:05
dukeleto japhb: no worries
japhb Interesting. It appears that PHP, Python, and Ruby all use the Mersenne Twister as their default PRNG. We may want to upgrade our implementation at some point. 04:13
dukeleto: shall I enter a TT for that, or would you like to?
dukeleto japhb: please enter a TT, but I may get to it with my current patch 04:15
japhb: I am changing tests first
japhb dukeleto: nodnod 04:19
TT #923 04:27
dalek TT #923 created by japhb++: Replace PRNG algorithm used by rand dynop 04:29
04:40 ingy joined
dukeleto keeping tripping into deeper yak-shaving holes 04:47
japhb Mmmm, tasty, tasty yak .... 04:48
cotto yeah. watch out for those 04:52
dukeleto cotto: 10-4 04:58
purl 6
dukeleto purl, i give a botsnack for trying
purl :)
cotto purl, you can't have a botsnack 05:04
purl thanks cotto :)
cotto Is there an html or pdf version of the pir book available? 05:06
GeJ doesn't `make html` build one? 05:08
cotto found it 05:09
docs.parrot.org
purl well, docs.parrot.org is updated nightly iirc
cotto GeJ, that works too. For some reason I though make html didn't cover the pir book. 05:10
GeJ I think it doesn't do the draft chapters. Everything else should be fine. 05:13
I remember a commit from allison about something like this not so long ago. It may have changed though. 05:14
allison GeJ: yes I removed the draft chapters from 'make html'
GeJ: but the main book is still there
GeJ Yay for my memory! 05:15
As for the PDF, maybe scribd the scribd link. I couldn't say for sure since I don't have Flash. 05:16
s/scribd/check/
dukeleto yay for passing tests
dalek rrot: r40554 | dukeleto++ | trunk (2 files):
[TT #871] Add some more permutations of the rand() dynop, with tests
05:49
dukeleto was random the only singleton pmc? 05:52
there is a test in t/op/gc.t about singletons accidentally being destroyed that uses the random pmc
looks like Env is a singleton 05:53
as well as File, Null and Os, if anybody cares 05:54
still having trouble with this gc test 05:59
i think I will todo it for now 06:03
japhb: runtime/parrot/library/Math/Random/mt19937ar.pir is an MT implementation in PIR 06:22
japhb dukeleto: I'll be darned. 06:23
dukeleto: well, if it's fast enough, I guess use it. :-) 06:24
dukeleto japhb: sounds good to me
japhb: some benchmarks would be greatly appreciated 06:25
should rand $P0 do something useful? 06:26
probably not 06:27
japhb not obviously so.
dukeleto i see that opengl uses a ".local pmc rand", and I just recently added a dynop called rand 06:29
japhb dukeleto: I don't see that; just '.local pmc random' and '.local num rand' 06:30
dukeleto japhb: can you verify that the opengl examples work with my new dynops loaded? you have to add ".loadlib 'math_ops'" above your includes (i am messing with shapes.pir now) 06:31
japhb: you are right, it is num rand
just wondering how the pir parser does with an op and a variable with the same name
japhb so make it '.local num random' instead, and 'random = rand', right?
dukeleto: I'd just not bother with the confusion. Don't even try. 06:32
dukeleto: I'm hacking together a quick bench for you. 06:33
dukeleto japhb: 10-4
purl 6
cotto 6?
purl well, 6 is THERE IS NOOOOOO... RULE 6
dukeleto do ops only take registers as arguments? 06:47
cotto They can also take constants.
but you don't have to do anything special to use them. ops2c takes care of that. 06:48
dukeleto just as an aside, it appears that parrot's floating point random numbers don't have a different seed for each run. rand $N0 always returns 11.8540295743782 the first time on my OS X machine, rand $I0 at least has the perception of being random 06:55
is that a bug or a feature?
japhb dukeleto: that depends; checking for srand being on every rand done is a waste of time, but many HLLs expect that. 06:57
s/being on/already being done on/ 06:58
mj41 Hi. Probably it is possiible to update some of these test cases tt.ro.vutbr.cz/report/pr-Parrot/do?...un-8638=on 07:01
dukeleto japhb: the thing is, rand $I0 is fine, but rand $N0 is always the same the first time it is run in an interpreter
japhb that's rather odd.
dukeleto they are each a thin wrapper arount Parrot_int_rand and Parrot_float_rand, respectively 07:02
dukeleto jumps over a few other yak holes trying to ensare him 07:03
japhb heh
I'd say if they have different behavior, it's a bug. Which one is 'correct' ... well, that depends.
dukeleto japhb: i think I have gotten rid of Random in shapes.pir 07:17
07:17 chromatic joined
japhb dukeleto: OK. I've got the start of a benchmark, no extending it to all the documented op variants 07:18
07:18 elmex joined
dukeleto japhb: cool 07:18
japhb: what do I have to do to enable opengl? configure finds it but I get "Could not find a suitable GL shared library!" 07:22
japhb What did your configure say?
And what OS are you on?
dukeleto japhb: OS X and ... 07:26
japhb: my perl Configure output : gist.github.com/168292
japhb Interesting. 07:29
I assume you have the OpenGL and GLUT Frameworks installed? 07:30
dukeleto japhb: i *assume* i do, but I haven't checked lately. I was under the impression that os x had them by default. is that assumption wrong? 07:36
japhb dukeleto: honestly, I haven't tried to install them since like 10.3 days. Been a while.
It's looking for /System/Library/Frameworks/OpenGL.framework/OpenGL and /System/Library/Frameworks/GLUT.framework/GLUT ; do those exist? 07:37
07:39 nperez left
dukeleto japhb: yes, they exist and file reports them as "Mach-O universal binary" 07:41
japhb Odd that it would be having trouble finding them then ....
dukeleto japhb: should I make a TT for this?
japhb dukeleto: sigh, sure. 07:43
dukeleto japhb: let me try it on a clean trunk to be sure
yep, same error on a clean trunk 07:44
japhb dukeleto: bleah. Building parrot myself to make sure someone didn't hose GL completely in the last week 07:45
dukeleto japhb: sounds like a plan 07:46
07:46 HG` joined
japhb OK, not broken on this box. 07:49
(Debian)
dalek TT #924 created by dukeleto++: OpenGL examples not working on OS X
japhb dukeleto: OK, benchmark in your hands. 07:52
Sorry did not have time to beautify and comment, but it should be relatively clear what is going on. 07:53
dukeleto looks at hands
dalek rrot: r40555 | japhb++ | trunk (2 files):
[examples] new benchmark for rand dynop
rrot: r40556 | dukeleto++ | trunk/t/dynoplibs/math.t:
[TT #871] Add some tests for the rand() dynop with different calling conventions
dukeleto japhb: spiffy, I will fiddle with it after I kill RandomPMC. thanks! 07:55
japhb np
dukeleto: when you get a chance, can you trace the library loading calls when you try to run the OpenGL examples, and see if it really does look for the OpenGL framework binary? 07:57
I can imagine two things getting messed up accidently: someone breaking the runtime framework loadlib on OS X, and someone breaking the finicky linkage magic that OS X frameworks seem to require. 07:58
dukeleto japhb: how should I do that on os x? I am more familiar with ktrace on linux 07:59
dtruss?
purl it has been said that dtruss is like strace, it may be useful
japhb Do you have strace there?
And purl actually has a useful comment for once ...
dukeleto japhb: no strace
japhb Despite my wife using a Mac, the thing might as well by designed by aliens for all the sense OS X linking makes to me .... 08:00
*be designed
dukeleto japhb: the os x compiler/linking arena is where they definitely go a bit crazy. the GMP find bugs in apples version of gcc all the time 08:02
s/the GMP/the GMP folks/ 08:03
japhb wheee 08:04
You've really got to wonder why no one at Apple has gone "Really? Do we really want to give ourselves this much pain?"
08:08 rdice joined
cotto you're probably just not close enough to the reality distortion field. Get closer and it'll all make sense. 08:08
japhb heh
08:12 iblechbot joined
dukeleto do i have to run a special dev tool when deleting a PMC ? I am seeing all the packfile tests fail in my kill_random tree and I have no clue why, I didn't think I was touching anything related to them 08:15
cotto dukeleto, yes. Add an entry to PBC_COMPAT, run make reconfig and rerun make. 08:17
dukeleto this is what the failing packfile tests look like: gist.github.com/168304
cotto adding to or removing core PMCs causes a bytecode change 08:18
dukeleto cotto: that is a very useful bit of info that I did not know 08:19
cotto It's documented in PBC_COMPAT and possibly other places, but I don't know how you'd know to look for the info other than knowing about it. 08:21
That's why we have #parrot. 08:22
dukeleto cotto: make reconfig just does make realclean and perl Configure.pl ? 08:23
i've done that already and my packfile tests still seem to fail
cotto yes
dukeleto freakin' odd 08:29
08:30 einstein joined
dukeleto i keep getting ./src/pmc/hash.pmc:1436: failed assertion '(INTVAL)hash->key_type == k_type' 08:32
08:33 ttbot joined
dukeleto i am attempting to delete the random pmc in a clean tree to see if I can replicate 08:37
cotto lemme play
dukeleto AMAZING 08:38
simply deleting the random pmc makes the packfile tests go BOOM 08:39
i must not be pressing a speshul button
cotto: is there another step to deleting a pmc? there seems to be
cotto svn del 08:40
dukeleto cotto: git svn rm ;)
cotto or that 08:42
dukeleto i think i may see the light
the good kind
cotto the build works fine if I do svn del
so not UV
there's also tools/dev/mk_native_pbc 08:44
I see a couple failing tests, but it looks like it's just because they use the Random PMC as an example of a singleton. They should be easy to fix. 08:46
good luck and good night 08:47
dukeleto cotto: danke
cotto bitte
dukeleto UV?
purl UV is bad for my skin
dukeleto time for the parrot_debugger! 08:51
wherein I discover that the parrot_debugger sets breakpoints but doesn't actually listen to them 08:55
dukeleto falls in a big fucking yak-shaving hole 08:56
japhb That's because you shaved the ground instead of the yak .... 08:57
dukeleto japhb: mind looking at this? gist.github.com/168308 09:00
japhb dukeleto: looking
dukeleto i am seeing odd failures in the packfiles when I delete the random pmc
i don't see a direct correlation 09:01
i thought the uuid's used the random pmc, but they don't seem to
perhaps the connection is more indirect
09:01 joeri joined
dukeleto try deleting src/pmc/random.pmc and doing make reconfig; make; prove t/pmc/packfile*.t and see what happens 09:02
if you have a few extra minutes for a hair puller :)
japhb manifest fail, but that's expected .... 09:03
dukeleto japhb: yes, there are a few tests that directly depend on the random pmc, which I have fixed in my tree 09:05
but this packfile failure/blowup is totally boggling me
09:08 ttbot joined
japhb dukeleto: yup, builds fine, but packfile tests fall down go boom. 09:09
dukeleto japhb: ok, at least I know I am not bonkers. thanks!
japhb I wonder if this is a side effect of bacek's war on the Key PMCs? 09:10
dukeleto japhb: i have not yet heard the full war stories, what is he doing?
japhb: do you have any suggested avenues of discovering what the junk is going on with the packfile tests? 09:12
japhb dukeleto: unfortunately, I haven't been following that section of things, just watching it go by on occasion. I've been mostly spending my time in the module space rather than the core. 09:13
dukeleto they use native_pbc! 09:17
a breadcrumb, at last 09:18
09:19 mokurai left 09:22 ttbot joined
dukeleto looking into this dev/mk_native_pbc thingy 09:22
it gave me a bus error on darwin-x86 09:29
guess i will try on a freebsd box 09:33
r39447 by Infinoid tells me what I need to know. you need to run mk_native_pbc and commit the result when changing the pbc format. that script doesn't work on darwing-x86 :( 09:41
darwin even
09:52 jan joined
dalek tracwiki: v8 | dukeleto++ | Deprecation 09:57
tracwiki: trac.parrot.org/parrot/wiki/Deprec...ction=diff
tracwiki: v9 | dukeleto++ | Deprecation
tracwiki: trac.parrot.org/parrot/wiki/Deprec...ction=diff
tracwiki: v1 | dukeleto++ | HowToDeprecate 10:00
tracwiki: trac.parrot.org/parrot/wiki/HowToD...ction=diff
tracwiki: v2 | dukeleto++ | HowToDeprecate 10:04
tracwiki: trac.parrot.org/parrot/wiki/HowToD...ction=diff
dukeleto praise the heavens 10:05
Infinoid "Um, thank you, Mr. Sky, for not falling on me." 10:14
I've found the mk_native_pbc script only works on linux/x86 10:17
it runs fine on linux/x86-64 too, but the result fails tests
At least, that was the state of things a couple months ago.
dukeleto infinoid: I think i have a working set of new data from a freebsd machine 10:19
Infinoid ok. if that doesn't work, I can run it here
dukeleto Infinoid: awesome, thanks! 10:23
impending commit
Infinoid ok. after you commit, I can try it on a couple of different platforms 10:39
dalek rrot: r40557 | dukeleto++ | trunk (13 files):
[TT #871] Kill the Random PMC
10:43
dukeleto the next commit has the changed native_pbc data 10:45
dalek rrot: r40558 | dukeleto++ | trunk/t/native_pbc (5 files):
[TT #871] Update native_pbc tests with the mk_native_pbc utility
10:46
jonathan dukeleto: Did you patch PBC_COMPAT, if that PBC was core? 10:47
dukeleto jonathan: indeed I did 10:48
jonathan dukeleto++
And I meant s:2nd/PBC/PMC/ there. :-)
Infinoid got some codetest failures now... 10:49
dukeleto now i am getting errors like "This Parrot cannot read bytecode files with version 5.1"
jonathan dukeleto: Those normally go away with a make realclean 10:51
(And then build again)
dukeleto thought I did that, will try again
Infinoid the packfile tests still fail here on linux/x86 and linux/x86-64 10:52
dukeleto Infinoid: can you regenerate the packfile data? 10:53
Infinoid I will, one moment
dalek rrot: r40559 | mikehh++ | trunk (3 files):
fix codetest failures in r40556 (3 files - space after comma, trailing spaces, if(
dukeleto Infinoid: thanks a bunch
Infinoid mikehh++ # beat me to the cage commit
dukeleto mikeh++ as well 10:54
ug, mikehh++ even
perhaps pbc_header.pl needs to be run? 10:57
Infinoid watches mk_native_pbc taking its sweet time...
dukeleto yeah, it is quite a hog
Infinoid guess I never set up ccache on this machine.
dukeleto Infinoid: src/packfile.c(1008) says to run "tools/dev/pbc_header.pl --upd t/native_pbc/ *.pbc" 10:59
the tests *still* fail for me after that, so I am handing it off to you and hitting the sack 11:00
without the space between "/" and "*.pbc" (typo in the source :) ) 11:01
Infinoid updated files committed; they pass for me but that doesn't mean much. sleep well!
dukeleto sweet!
see y'all on the flipside
dalek rrot: r40560 | Infinoid++ | trunk/t/native_pbc (5 files):
Re-run tools/dev/mk_native_pbc on linux/x86.
11:03
11:07 MoC joined
mikehh ok the packfile tests failed at r40559 but PASSed at r40560 11:29
All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40560 - Ubuntu 9.04 amd64 (g++) 11:36
I am failing to build rakudo on parrot r40560 - Class '[ 'parrot' ; 'Random' ]' not found 11:47
current instr.: 'onload' pc 14441 (src/builtins/any-num.pir:27) 11:48
called from Sub 'perl6;Perl6;Compiler;main' pc -1 ((unknown file):-1)
that's called from /usr/local/bin/parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir 11:50
dalek a: 1f629ef | fperrad++ | src/pmc/lua.pmc:
[cage] drop no longer useful "if (pass)" conditions from class_init functions
11:58
a: 10494aa | fperrad++ | src/lib/luaregex.pir:
opcode 'bsr' is gone
a: ebbf856 | fperrad++ | src/lib/glut.pir:
fix OpenGL initialization
a: e3dcacd | fperrad++ | (3 files):
add the library Zlib (just a skeleton)
rrot: r40561 | NotFound++ | failed to fetch changeset:
merge from trunk r40560
12:07
12:14 Whiteknight joined 12:20 AndyA joined 12:32 iblechbot joined 12:56 HG` joined 12:59 kid51 joined 13:01 rdice joined, bacek joined
bacek o hai 13:12
13:12 quek joined 13:14 JimmyZ joined
dalek rrot: r40562 | whiteknight++ | branches/pmc_sans_unionval (3 files):
[pmc_sans_unionval] add another patch from jessevdam that makes this branch build and test perfectly on my system
13:18
Whiteknight good morning 13:35
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
13:52 rdice joined
dalek rrot: r40563 | whiteknight++ | branches/pmc_sans_unionval (5 files):
[pmc_sans_unionval] some codestd fixes
14:01
rrot: r40564 | whiteknight++ | branches/pmc_sans_unionval (7 files):
[pmc_sans_unionval] switch some cpp comments to proper c ones
14:05
14:10 tetragon joined
dalek rrot: r40565 | whiteknight++ | branches/pmc_sans_unionval/src/gc/alloc_resources.c:
[pmc_sans_unionval] fix some argument asserts
14:11
rrot: r40566 | whiteknight++ | branches/pmc_sans_unionval/include/parrot/pobj.h:
[pmc_sans_unionval] fix up some macro definitions
rrot: r40567 | whiteknight++ | branches/pmc_sans_unionval/src/gc (2 files):
[pmc_sans_unionval] reheaderize things for great justice
14:18
rrot: r40568 | whiteknight++ | branches/pmc_sans_unionval/src/gc/alloc_resources.c:
[pmc_sans_unionval] add some whitespace to help with the operator tests
14:25
rrot: r40569 | whiteknight++ | branches/pmc_sans_unionval/src/gc/api.c:
[pmc_sans_unionval] fix some whitespace after a C keyword
Whiteknight it's karma for all those times I committed things that broke codestd 14:31
dalek rrot: r40570 | whiteknight++ | branches/pmc_sans_unionval (3 files):
[pmc_sans_unionval] remove some trailing whitespace
14:32
14:47 Psyche^ joined
dalek kudo: ada2b41 | masak++ | Test.pm:
[Test.pm] added diagnostics to is_deeply

to $got and $expected, in line with how &is does it. Also removed one multi variant in favor of a default parameter value.
14:58
15:10 eiro joined
eiro hello 15:11
Whiteknight hello 15:20
15:26 kid51 joined 15:42 quek left 16:22 joeri joined 16:41 janus joined
einstein dalek: next time I also will take better care with the coding std, sorry for this time. But I learned it is important too. 17:19
dukeleto 'ello 17:42
17:50 jisom joined
cotto dukeleto, do you have that special gene that means you need to sleep less? 17:50
dukeleto cotto: yeah, it is called "getting thru grad skool" ;) 17:54
cotto: i trained myself by teaching college algebra to freshman at 7am on an hour of sleep. 17:55
cotto: it looks like Rakudo was using the Random PMC, thanks to mikehh++ for noticing 17:56
18:00 dduncan joined
cotto dukeleto, welcome to the wonderful world of breaking Rakudo! 18:01
dukeleto puts on party hat
i just gave #perl6 a heads up 18:02
i am looking at the code, but what does "set_hll_global ['Any'], '$!random', $P0" do ?
where $P0 is a random pmc
i don't know the $!foo syntax
cotto that's just part of the name of the variable 18:03
dukeleto hmmmmm
cotto do you understand the rest of it?
dukeleto cotto: yeah, I think. they are just saving off a random pmc to use later 18:04
cotto yup
I guess they could do the same thing with the dynops by making a PIR-level PMC that uses the ops. 18:05
dukeleto they also have a rakudo method srand() that isn't really needed anymore, since we have a srand() dynop now 18:06
which sets the seed to time() or a given value
cotto I look forward to Parrot having an actual entropy source. This business of using the time is silly. 18:07
dukeleto cotto: i assigned that ticket to me, I am on that like white on rice :) 18:08
cotto Sweet! 18:11
dukeleto i wonder what happens in PIR if an HLL defines a function/method with the same name as a dynop ....
such as srand() 18:12
cotto try it! 18:15
I suspect it'll be fine though.
dukeleto cotto: getting close to testing it... 18:16
can someone with GC tuits look at the todo test that uses the Random PMC in t/op/gc.t ? I couldn't immediately see how to convert it to another singleton PMC and I didn't want to delete it
18:20 iblechbot joined
cotto That test would be much more readable in pir. 18:23
18:34 dan joined 18:38 davidfetter joined 19:03 szabgab joined
dalek rrot: r40571 | dukeleto++ | trunk/examples/opengl/shapes.pir:
[examples] Fix small bug in the way the opengl example generates random numbers that was introduced in r40557
19:08
Tene 'slingleton' :) 19:21
19:22 chromatic joined
dukeleto chromatic: mornin' 19:24
chromatic Not in my time zone! 19:25
dukeleto chromatic: if you have any time, could you look at the todo test that uses the Random PMC in t/op/gc.t ? It tests that the GC doesn't bork singletons but I couldn't easily figure out how to change the test to use a different singleton
chromatic: we are both in the same TZ ;) But yes, it does seem to no longer be morning 19:26
dukeleto gets more coffee
chromatic Will do now.
dukeleto that test was the only innocent bystander of the great war on the Random PMC
dalek TT #871 closed by dukeleto++: add 'rand' as a dynop 19:35
chromatic Env is also a singleton PMC, so we can use that instead. 19:36
purl okay, chromatic.
dalek rrot: r40572 | chromatic++ | trunk/t/op/gc.t:
[t] Revised the "Garbage collection shouldn't sweep up singleton PMCs" test to
19:38
19:41 kid51 joined
dukeleto chromatic: yes, I attempted to swtich to Env, but my tuits failed 19:47
chromatic: I wasn't sure that I understood exactly what that code was trying to trigger in the GC, since it is a total black box to me
huh, it seems like /usr/local/lib/parrot/1.4.0-devel/library/PCT isn't being installed when I do "make install", but other libraries are there 19:48
chromatic How about make install-dev? 19:49
dukeleto chromatic++ 19:51
chromatic Wow, I just did a parallel test run in 29 wallclock seconds. 19:54
That GC lazy allocation change had an effect.
dukeleto oooh, can I get some of that :) 19:55
evidently when an HLL has a function with the same name as a dynop, the HLL hides the dynop 19:56
jonathan chromatic: Lazy allocation change?
dukeleto Rakudo's srand() seems to be hiding the srand() dynop
jonathan dukeleto: Huh? Ops and sub calls shouldn't get confused? :-/ 19:57
dukeleto: Are you sure the dynops library is being located/loaded correctly?# 19:58
dukeleto jonathan: not totally. I am trying to get me code to compile and that seems to be my current error. But I do have my .loadlib "math_ops" line 19:59
jonathan: when I try to call the srand dynop, it tells me that it expects a '(' instead of my variable 20:00
jonathan dukeleto: That's the error that occurs when the dynop is not loaded properly. 20:01
Because it doesn't know an op of that name and thinks it's meant to be a function call instead.
kid51 msg whiteknight Here's that Smolder on your branch: smolder.plusthree.com/app/public_pr...ails/26203
purl Message for whiteknight stored.
kid51 chromatic: What was exact command you used for that 29 second test run? 20:05
chromatic mj coretest TEST_JOBS=5 20:10
jonathan, Whiteknight changed the GC so that allocating a new arena doesn't immediately add every header in that pool to the free list.
First we recycle headers on the free list, then we walk through the pool one pointer bump at a time, and only after we can't do that do we run the GC and maybe allocate a new pool. 20:11
kid51 mj ?
purl i think mj is BLACK?! or WHITE?! or rjbs's daughter
dukeleto mj = make -j ?
chromatic It avoids an O(n) operation (adding to the free list) for each arena allocation.
Oh, yes. make -j. Sorry, I have a lot of shell aliases. 20:12
dukeleto jonathan: is there a way to check if a .loadlib call succeeded? 20:14
it seems that the path for loading the parrot dynops is different when you are in a rakudo builtin 20:15
dduncan Parrot's readme references a Bundle::Parrot as a prerequisite but there's no such thing on CPAN or bundled ... did it mean Bundle::Parrot::Smoke or something else? 20:17
dukeleto what is the proper path to load a parrot dynop from within a rakudo builtin?
it seems like perhaps dynops are not installed with either a "make install" or "make install-dev" ? 20:20
jonathan dukeleto: Did you add the dynops to the "too install" list? I think that needs manual tinkering.
dukeleto: e.g. MANIFEST.generated
It may well be that they ain't getting installed. 20:21
I think .loadlib 'foo_ops' or so should Just Work.
dukeleto jonathan: none of the dynops are listed in MANIFEST.generated, should I add them? 20:23
just wondering, anybody know how many people are subscribed to parrot-dev ? 20:28
chromatic Not me. 20:34
Tene Not me. 20:38
cotto btw chromatic, I wasn't able to get the profiling code ready to merge before this morning. 20:42
I'll continue to working on and should have something useful within a week. 20:44
chromatic Okay, let me know how I can help and I'll work with you on it. 20:47
cotto It's mostly an issue of mapping Parrot's way of calling/returning/tailcalling subs onto the straight call/return model that callgrind expects. 20:48
afk for a while
dukeleto it also seems that include/dynoplibs is not generated in the parrot source tree. does anything actually use dynops successfully right now ? 21:03
chromatic I'd say Partcl, but you said "successfully". 21:04
dalek TT #925 created by dukeleto++: Dynops are not installed with "make install" nor "make install-dev" 21:06
Coke chromatic: ('d say Partcl, but you said "successfully".) THWAP. 21:45
Coke checks in very briefly.
I need someone to test out google video chat. anyone have a sec to do so?
dukeleto Coke: via gchat? 21:46
Coke I'm logged into the web client. should work. 21:48
(HS reunion this evening, I'm tech support for the video IM to the guy in iraq, who is probably getting a cat nap until the thing starts. Just want to make sure the new webcam works.) 21:49
I'm "will@coleda.com" in gchat.
dukeleto coke: installing the necessary dump trucks 21:52
coke: anybody home? 21:56
purl There's nobody here but us bots. or <reply>no
Coke WOOT 21:58
Coke makes sure the green light is OFF to get ready for the reunion! 21:59
dukeleto Coke: yes, please :)
Coke HA
I was shirtless, but tried to keep that off camera. hopefully I was successful
dukeleto Coke: it good to have a face to attach to a name
Coke if not SO SORRY.
dukeleto Coke: hahahaha
purl LOLCON 4 reached.
dukeleto s/it/it is/ 22:00
dalek rdinal: 0d2b4be | treed++ | (3 files):
Add some == operator functions for comparing TrueClass and FalseClass, also adds a test file for bools.
22:06
22:08 bobke joined 22:25 bacek joined 22:26 allison joined 22:40 rg joined 23:08 szabgab joined 23:16 quek joined
dalek TT #926 created by bacek++: Kill Parrot_cont structure 23:17
rrot: r40573 | bacek++ | branches/tt795_kill_parrot_sub_structure:
Branch for removing Parrot_sub structure
23:19
mikehh All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40573 - Ubuntu 9.04 amd64 (g++) 23:59