HTTPS CERT EXPIRED | www.parrot.org | Improve test coverage for FixedPMCArray and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON
Set by moderator on 2 September 2009.
jonathan chromatic: Nah, then we fix Rakudo, and Rakudo goes on to be very very happy that contexts are now PMCs. 00:00
chromatic Note that this problem *goes away* with Lorito.
00:01 rbaumer joined
bacek_at_work jonathan: mikehh should have my patch for Rakudo. 00:02
jrtayloriv Can someone with some free time and a commit bit take a look at TT#958 and TT#968 -- I'm pretty sure they're both ready to be commited. 00:03
(the patches attached to them that is)
chromatic Looking at both. 00:04
jrtayloriv thank you
dalek rrot: r40934 | chromatic++ | trunk/src (3 files):
[PMC] Ensure that all accesses to PMC_sync check the PMC shared flag first, to
00:13
rrot: r40935 | chromatic++ | trunk (6 files):
[docs] Updated documentation to reflect PObj layout changes. Patch by
TT #968 closed by chromatic++: Rename PObj_active_destroy_foo to PObj_custom_destroy_foo
TT #958 closed by chromatic++: [PATCH]: Doc fixes related to GC and UnionVal
chromatic Oops. 00:15
Sigh. Oh well, fair enough. 00:23
dalek rrot: r40936 | chromatic++ | trunk (35 files):
[HLL] Fixed two compilation-breaking typos accidentally committed in r40934.
00:26 kid51 joined
chromatic Turns out svn dcommit commits changes that aren't even in the index. 00:32
Just when I thought I understood things.
Whiteknight you're on fire tonight, chromatic 00:36
cotto I think it works! 00:37
chromatic (Hate Driven Development)++ 00:38
jonathan So, IIUC, profiling branch is getting merged probably quite soon? 00:39
jonathan looks forward to applying it to Rakudo :-) 00:41
Tene chromatic: can I see your shell history? dcommit *shouldn't* be committing things not added to commits.
cotto jonathan, I (literally) just got a decent-looking profile in KCachegrind, so yet. 00:42
dalek tracwiki: v7 | whiteknight++ | JITRewrite
tracwiki: +info I've received about nanoJIT
tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff
jonathan cotto: Are there analysis tools for on Windows too, out of interest?
cotto s/yet/yes/
jonathan I'm guessing KCachegrind doesn't run there...
cotto no idea 00:43
jonathan oh, I'm wrong
Runs anywhere KDE does in theory. 00:44
Yay. :-)
cotto It looks like it'll work through cygwin.
chromatic $ git add src/hll.c 00:45
$ git ci
$ git svn dcommit
But I must first... /away 00:46
jonathan Sleep time - night all 00:47
cotto committed
treed ere break of day?
dalek rrot: r40937 | cotto++ | branches/pluggable_runcore (2 files):
[profiling] initial working version of pprof2cg
00:50
dukeleto whiteknight++ on the JITRewrite wiki page. very informational 00:54
cotto Whiteknight++ indeed, especially for emailing the devs of the various projects. 00:55
dukeleto msg chromatic what is your git ci alias ?
purl Message for chromatic stored.
Whiteknight I was actually surprised to hear about Lightning. It's not too active, but it's still stable and useful 00:57
I was expecting to hear that it was dead and buried and unusable
cotto CPUs don't really change that much (on that level). 00:59
dalek rrot: r40938 | cotto++ | branches/pluggable_runcore/tools/dev/pprof2cg.pl:
[profiling] don't require perl 5.10 just for the say function
01:04
01:04 payload joined
jrtayloriv Whiteknight, I don't see anything further that I can do with the kill_parrot_cont branch. So I think it's done for now, unless somebody can point me to something else that needs to be done with it. All tests are passing on OpenBSD amd64 and Linux amd64, but I don't know about any other platforms. 01:08
Whiteknight jrtayloriv: It's good as-is, don't do any more with it
great job on it, by the way!
jrtayloriv ok. thanks :) 01:09
Whiteknight bacek has a branch that sort of overlaps with some of this, so if he is able I want to get him to merge his first
his is a bigger change and an older branch, so the merge will be messier
I'll send a message to the list about both branches. We can do one right after the other if we all get the thumbs up
jrtayloriv baceks change is much more complicated, so I agree -- mine would be pretty simple to alter to work with his, rather than the other way around
Whiteknight now if his branch doesn't get the green light, we'll merge yours first instead 01:10
jrtayloriv Whiteknight, What do you think the first steps might be towards getting it so that we can choose which GC system when we create an interpreter rather than at compile time? What are the major obstacles at this point? 01:16
cotto jonathan, pluggable_runcore was last synced with trunk at r40830. Would testing profiling with rakudo be easier if I synced again?
Whiteknight jrtayloriv: Good question. I think the only thing missing is a mechanism to select it
all the GC core functions are called by function pointers now, we just need a way to select which pointers we load 01:17
check out the preprocessor nonsense in src/gc/api.c:Parrot_gc_initialize()
jrtayloriv yes I saw it. 01:18
Whiteknight so we need to replace those #ifdefs with a switch or something, and pass in a parameter to select
jrtayloriv looks like it would be easy to move out of there though.
(or at least, not extremely difficult)
Whiteknight A path of least resistance is to do that in place, but if you can think of a better way I would love to see the patch 01:19
jrtayloriv I meant out of the #ifdefs not out of the function, sorry.
OK, I'll start playing around with it. And asking you a lot of questions :) 01:20
Whiteknight that's fine, questions are good 01:21
darbelo I'm slowly killing ->strstart use, but the whole thing would be a monster of a patch, does anyone care to review a first chunk of this work? 01:22
cotto darbelo, I can do that.
Whiteknight darbelo: can you break it into chunks?
that is, does it have to be done in one shot, or can it be done over multiple commits? 01:23
darbelo I can throw the low hanging fruit (pmcs and a few other places) pretty much on a file by file basis.
nopaste "darbelo" at 200.49.154.172 pasted "VERY low-hanging fruit." (119 lines) at nopaste.snit.ch/17789 01:26
darbelo Every file on that patch is independant of each other. And I have a few more of those, I can paste the whole thing or make a separate paste for each file. 01:28
$ svn diff | wc -l 01:29
233
Spread across 8 files. 01:30
And, just tested it, doesn't break partcl :) 01:32
dukeleto the parrot_debugger uses strstart too. please kill that usage if you can as well
kid51 kill_parrot_cont branch: Smolder test on Linux/i386: smolder.plusthree.com/app/public_pr...ails/26801 01:34
darbelo dukeleto: Okay, I'll go there tomorrow. I have to catch Z's today :)
nopaste "darbelo" at 200.49.154.172 pasted "Another batch of low-hanging fruits" (114 lines) at nopaste.snit.ch/17790
darbelo Two pastes so Whiteknight and cotto don0t have to fight :) 01:35
dukeleto darbelo: sounds good. the parrot_debugger needs some love
darbelo dukeleto: Eventually I want to kill strstart wholesale, but I really can't do that if it's used all over tha place. 01:36
cotto I'll take the first one then. I'd like some fruit.
Whiteknight parrot-dev? 01:37
purl i heard parrot-dev was mailto:parrot-dev@lists.parrot.org or lists.parrot.org/mailman/listinfo/parrot-dev
dukeleto darbelo: the parrot_debugger should be an isolated/easy place to fix it. other things don't rely on the parrot_debugger, it is mostly just that the parrot_debugger doesn't adhere to an external API
darbelo++ for killing - 01:40
>strstart
darbelo dukeleto: Not dead yet, just less visible :)
dukeleto darbelo: behind an API i guess it what I mean.
darbelo And some places are going to need a bit more that simple encapsulation. 01:41
I commented on one example at irclog.perlgeek.de/parrot/2009-09-02#i_1459378
Whiteknight darbelo: are you a committer for parrot? 01:43
darbelo Whiteknight: Nope. 01:44
Whiteknight that's no good. Should have brought that up in the last #ps 01:45
kid51 CLA? 01:46
purl CLA is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal or www.parrot.org/files/parrot_cla.pdf
darbelo I wasn't arround last #ps.
'All your code are belong to the PaFo' 01:48
cotto darbelo, first patch committed.
darbelo That CLA is pretty tame, It didn't even ask for my undying soul. 01:50
cotto darbelo, the first chunk of the second patch leaks if one of those exceptions get thrown. 01:51
dalek rrot: r40939 | cotto++ | trunk/src (5 files):
[strings] first of many patches from darbelo++ getting rid of ->strstart abuse
darbelo cotto: Which file?
purl i heard Which file was that error in
cotto istr that you can use STRINGs in Parrot_ex_throw_from_c_args.
treed purl: Forget Which file 01:52
purl treed: I forgot which file
cotto src/interp/inter_cb.c
%Ss is for STRINGs, iirc
kid51 kill_parrot_cont branch: Smolder test on Darwin/PPC: smolder.plusthree.com/app/public_pr...ails/26802 01:53
darbelo crap, it DOES leak a string.
I'll fix it in a sec. I'm waiting for make 01:55
cotto src/pmc/string.pmc has a similar leak
darbelo cotto: "unhandled signature '%Ss' in make_cb", cb_signature); works? 01:57
nopaste "kid51" at 70.85.31.226 pasted "svn diff between trunk (at fork) and kill_parrot_cont branch (at HEAD)" (996 lines) at nopaste.snit.ch/17791 01:58
cotto I think so. You should probably test it to make sure.
(or check for similar uses)
darbelo I'm running make test, but I'm not sure it exercises that code path. 01:59
cotto probably not
darbelo Ah, %Ss works for STRING *, yes. 02:01
nopaste "darbelo" at 200.49.154.172 pasted "revised "src/interp/inter_cb.c" patch for cotto++" (44 lines) at nopaste.snit.ch/17792 02:03
darbelo I'll check the other patches for leaks later, I need to sleep now. 02:04
cotto good night 02:05
darbelo night
02:05 darbelo left
jdv79 Can't read '/usr/local/runtime/parrot/include/config.fpmc' : No such file or directory 02:07
look familiar?
partcl build fails with that
02:08 theory joined
Whiteknight goodnight 02:09
dalek rrot: r40940 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
[string] avoid ->strstart abuse in profiling runcore
02:21
rrot: r40941 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
[nits] minor code tidying
jdv79 i think its from an old installed parrot:( 02:25
dalek rrot: r40942 | cotto++ | trunk/src/interp/inter_cb.c:
[string] replace more ->strstart abuse, patch from darbelo++
02:28
02:35 janus joined 02:43 sri joined
jdv79 yup. yay. 02:45
02:59 Zak joined 03:15 rbaumer joined
Coke jdv79: how are you building parrot? 03:20
(and did you run "make install-dev" for parrot?
03:21 donaldh joined
Coke seen jdv79 ? 03:26
purl jdv79 was last seen on #parrot 41 minutes and 22 seconds ago, saying: yup. yay.
Coke msg jdv79 - please file a bug report with partcl showing what version of parrot you're using, how you installed it, how you configure'd partcl. Best guess at the moment is that you forgot to do install-dev". 03:38
purl Message for jdv79 stored.
dalek rrot: r40943 | cotto++ | branches/kill_parrot_cont (3 files):
[codingstds] rerun headerizer and fix some codingstd nits
03:46
cotto looks like the profiling runcore explodes on a rakudo hello world 04:16
04:20 dukeleto joined
dalek rtcl: r675 | coke++ | trunk/runtime/builtin/read.pir:
flesh out [read] a little;
04:23
rtcl: r676 | coke++ | wiki/SpecTestStatus.wiki:
Fixed one hang, another file gets further.
rrot: r40944 | NotFound++ | trunk/src/pmc (2 files):
[cage] c++ fixes
04:34
04:51 mokurai joined
mikehh ha NotFound++ fixed that before I could - but some codetest fixes as well 05:09
dalek rrot: r40945 | mikehh++ | trunk/src (4 files):
fix codetest failures - tabs in leading whitespace and Trailing space or tab char
05:11
05:21 kyle_l5l joined
cotto How can I tell from C if I'm in an :init sub? 05:28
NotFound cotto: I hope we never need to know that 05:30
cotto I do. 05:31
dalek rrot: r40946 | NotFound++ | trunk/src/pmc (5 files):
[cage] some remaining items from auto_attrs conversions
cotto It makes the profiling runcore sad to be in an :init sub without knowing that it's there.
Nobody likes a sad runcore. 05:36
NotFound And I suppose is even worse if that :init sub is run from another :init sub 05:37
cotto I doubt it. If I can figure out if I'm in an :init sub I can also figure out when I've left that sub. 05:39
Hopefully it's just a flag imcc sets somewhere.
NotFound Uh, that's another problem. You need to know if the sub has the :init flag, or if is actually running from fixup subs? 05:40
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40945 - Ubuntu 9.04 amd64 (g++) 05:41
cotto I suspect Packfile_fixup_subs, but my knowledge of what I need to know starts to get shaky at this point. 05:43
cheating may be a valid option 05:44
Coke has another test file that isn't run by default turn out to be a segfault.
Coke hopes NotFound++ can work more magic soon. =-)
NotFound cotto: And what about :immediate? 05:45
Coke: A parrot test? 05:46
purl i guess a parrot test is failing anyway ;-)
05:47 he__ joined
Coke NotFound: no, tcltest.tcl is now segfaulting. 05:47
(same backtrace as another one of the reported segfaults)
cotto That's why cheating may be a valid option. The problem is that some iglobals aren't initialized, so I can probably just check the ones I need before trying to use them.
dalek rtcl: r677 | coke++ | trunk/ (4 files):
Add opt from the standard library, and let [package require opt] work.
rtcl: r678 | coke++ | wiki/SpecTestStatus.wiki:
allowing load of [opt] consolidates our failure mode on 2 files.
NotFound cotto: uh... that may be a parrot bug 05:48
cotto It doesn't smell like one, but my nose is stuffy. 05:52
NotFound cotto: What iglobals? 05:54
Coke in a PIR subclass of a PIR class, I override 'get_pmc_keyed' - at the end, I wish to invoke my parent's copy of that vtable. If my parent were a PMC, I could poke at the 'proxy' attribute - what do I do in this case?
cotto argv
pmichaud can someone remind me of the correct procedure for adding an opcode to Parrot (esp. for the ops.num file)? 05:55
Coke put it in experimental and you can ignore the ops file.
"ops.num"
pmichaud I'm not sure it belongs in experimental, but yes, I can put it there for now I guess. 05:56
Coke but otherwise, i think you need to configure, run 'make opsrenumber', and then reconfigure.
pmichaud I'll put it in experimental for now.
Coke (I think that'll invalidate the bytecode). 05:57
(and there may be a small chance you have to run renumber anyway. =-)
sorry I'm not definitive.
NotFound Coke: make test doesn't segfault for me
pmichaud putting it in experimantal will invalidate the bytecode?
Coke NotFound: where?
partcl?
purl i guess partcl is tcl on parrot or code.google.com/p/partcl
NotFound Coke: partcl
Coke Yes, it doesn't.
pmichaud actually, let's start with a larger question... eta to the context_pmc3 branch merge?
because this is definitely impacted by that merge 05:58
Coke neither doesn 'make spectest', as I've skipped all the segfaulters.
NotFound: code.google.com/p/partcl/wiki/SpecTestStatus //segfault
those point to partcl issues which should point to parrot trac tickets.
(or you can just look at the parrot tickets.)
Danke!
NotFound Coke: but what is the new one you said a few lines ago? 05:59
Coke tcltest.tcl 06:00
purl tcltest.tcl is now segfaulting.
Coke similar backtrace for binary.test
(both point to Trac #964
the test was already not completing before. it's possible I missed it during the last round of cleanup/id. 06:01
NotFound Coke: The backtrace in #964 is from an --optimize build? 06:02
Coke NotFound: yes.
I'm building with --optimize --ccflags=-g 06:03
NotFound Note that s=0 but the arg is not NULLOK
In Parrot_str_copy
cotto pmichaud, my impression is that bacek has the green light to merge as his earliest convenience. 06:08
Coke NotFound: added a simple PIR test case for you. 06:09
(based on your clue, Thanks.)
NotFound Coke: thanks, I was about to try to write that 06:10
Coke (probably don't even need the say)
NotFound We need to add that code to the string pmc tests
Uhhh... Is a string, not a pmc :o 06:11
Coke right, but a string PMC clones its native string when cloning. 06:12
s/clone/COWs/
NotFound I'm not sure, but I think we fixed that long time ago... I suspect someone re-broke it 06:13
moritz then you didn't commit enough tests :-) 06:14
Coke NotFound: there you go, added a PMC version to the ticket.
NotFound An attempt of quick fix makes t_tcl/binary.test coredump in a diffrerent way ;)
Coke NotFound: that's entirely possible.
try tcltest.tcl instead; ISTR that one was not segfaulting previously. 06:15
NotFound Must go to dayjob, will work on that later
Coke (whereas binary is doing evil nasty things to strings in C)
I imagine the quick fix would be to make a COW just set the new one to NULl too.
06:15 HG` joined
NotFound Coke: no, it was a check for null in String.clone 06:16
Coke I would expect that to still segfault when cloning a string (not a String), then.
no>
?
not that tcl probably ever clones a non-pmc string. 06:17
anyhoo, thanks for any potential fixes.
06:18 dukeleto joined 06:21 jan joined
ttbot Parrot trunk/ r40935 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/78740.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 06:23
mj41 ttbot was paused because of Error validating server certificate ... - Hostname: *.parrot.org - Valid: from Aug 29 16:54:34 2008 GMT until Aug 29 16:54:34 2009 GMT 06:30
cotto we're allegedly working on that 06:32
bacek_at_work, are you planning on merging context_pmc3 soon? 06:38
06:43 chromatic joined
dalek rrot: r40947 | NotFound++ | trunk/t/op/string.t:
[t] add a TODO for clone null string
06:49
chromatic duk3leto, my .gitconfig has (per your suggestion) an alias for 'git ci' of 'commit -a', which is probably what happened. 07:04
Perhaps it was Schwern's suggestion. It was at OSBridge anyway. 07:06
pmichaud (merging context_pmc3) +1 07:15
chromatic fixes TT #964 for the NULL STRING case. 07:18
07:21 donaldh joined
pmichaud heads off to bed 07:22
bacek_at_work cotto: tonight. In next few hours. 07:24
cotto great! bacek++ 07:25
bacek_at_work I'll send big warning message before doing. I'll need clear way to merge it for about 0.5-1 hour 07:26
(Mean no commits to trunk)
chromatic Give me a few moments; I have another commit to fix a segfault.
bacek_at_work chromatic: it will not happen in next couple of hours. I'm still @work 07:29
dalek rrot: r40948 | chromatic++ | trunk/t/op/string.t:
[t] Fixed new null STRING clone test added in r40947, lest its passing appear

segment. Moral of the story: always add C<end> to PASM or just use PIR.
rrot: r40949 | chromatic++ | trunk (2 files):
[ops] Fixed clone S, S op to create a new empty STRING when attempting to clone
chromatic As soon as dalek unblocks, CLEAR! 07:32
dalek TT #964 closed by chromatic++: segfault in Parrot_str_new_COW
07:32 fperrad joined
dalek rrot: r40950 | chromatic++ | trunk (2 files):
[PMC] Made String PMC's set_string_native() promote NULL STRINGs to empty

boxed NULL STRINGs.
07:33
07:49 iblechbot joined 07:55 mberends joined
cotto chromatic, I'm finding bugs with the profiling runcore and postprocessing script. Currently I can't get a profile of -e "1". Should I merge anyway, once you've done your review or should I get the code a little more usable first? 07:56
07:57 jimmy joined
fperrad mikehh, what is your problem with Lua ? 08:02
chromatic Let's let bacek merge the context_pmc branch first.
cotto of course. I'm just thinking about after he's merged. 08:04
cognominal what is the auto_attrs flag in a pmc? 08:06
cotto It's a recent addition that means the struct for ATTRs will be automatically allocated and freed. 08:07
cognominal meaning no need to mark them? 08:08
nice
cotto They still need to be marked afaiu. 08:09
cognominal afaiu? 08:10
as far as I u(?)
cotto understand
afaiu is as far as I understand 08:11
chromatic Crazy initialization thought: add an API to fetch the vtable for a type. 08:12
Use that in get_new_pmc_header.
(Use that also in class_init within PMCs) 08:13
The first time you fetch an uninitialized PMC's vtable, initialize it.
BOOM!
Lazily initialized PMCs.
Startup speed could drop by 35%.
cognominal nice 08:17
I hate the java startup time, nice if we do better
chromatic There are a *lot* of references to interp->vtables though. 08:21
cotto chromatic, what's your thinking: should the profiling runcore be merged (a) when it's alpha-quality with significant known issues, (b) when mostly works but has a few known bugs or (c) when it has no known major bugs?
chromatic (b) 08:23
I don't expect to report HLL annotations correctly yet.
I also don't expect to get really complex control flow right yet.
I think we'll need to find edge cases to turn into test cases. 08:24
cotto good
mikehh fperrad - it fails on make
fperrad mikehh, with Parrot trunk ? 08:27
mikehh fperrad: yes
cotto I'm out. Happy merging. 08:28
dalek rrot: r40951 | cotto++ | branches/pluggable_runcore (2 files):
[profiling] be smarter about checking that Parrot's argv iglobal is initialized before using it
mikehh on Ubuntu 9.94 - both amd64 and i386
9.04
I have just built r40950 - will try Lua and report the error 08:30
fperrad mikehh, Lua needs : make install-dev
mikehh fperrad: yes
bacek_at_work fperrad: I have patch for Lua to build after context_pmc3 merge. Send it to you or just fork lua repo and commit? 08:32
fperrad bacek_at_work, an email with patch is fine 08:34
bacek_at_work fperrad: ok, deal
mikehh fperrad: make fails at -> /usr/local/bin/parrot -o lua.pbc lua.pir - error:imcc:make_pmc_const: no such pmc - in file 'lua.pir' line 307 - make: *** [lua.pbc] Error 1 08:35
All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40950 - Ubuntu 9.04 amd64 (gcc) 08:41
rakudo (c9a9300) builds on parrot r40950 - make test / make spectest (up to r28175) PASS - Ubuntu 9.04 amd64 (gcc) 08:57
decnum-dynpmcs builds on parrot r40950 - make test PASS - Ubuntu 9.04 amd64 (gcc) 09:10
that's decnum-dynpmcs r181 09:11
fperrad mikehh, on Ubuntu 9.04 x86, I always configure Parrot with --prefix=/home/user/local and Lua builds fine. 09:16
Now without --prefix, I reproduce your problem
mikehh cardinal - builds on parrot r40950 - rake test:all same 3 failures - Ubuntu 9.04 amd64 (gcc)
fperrad; ok will try that
09:17 Whiteknight joined
mikehh I used -> perl Configure.pl --parrot-config=/usr/local/bin/parrot_config before 09:18
09:21 cognomore joined
mikehh fperrad: I get the same result - error:imcc:make_pmc_const: no such pmc (about 4 times - before it fails with make: *** [lua.pbc] Error 1 09:31
09:31 HG` joined
fperrad mikehh, try this : 09:35
cd lua
mkdir dynext
cp src/pmc/*.so dynext/
make
mikehh fperrad: ok that builds - now it can't find Parrot/Test.pm 09:41
partcl r678 builds on parrot r40950 - make test PASS 09:42
fperrad - it's there in /usr/local/lib/parrot/1.5.0-devel/tools/lib/Parrot/Test.pm 09:49
09:51 payload joined 09:52 bacek joined 09:56 payload joined
bacek o hai 09:59
mikehh: around? 10:00
moderator Please don't commit in trunk in next half an hour. context_pmc3 branch merging | HTTPS CERT EXPIRED | www.parrot.org 10:09
bacek "Please don't commit in trunk in next half an hour. context_pmc3 branch merging" 10:09
mikehh bacek: yo
bacek mikehh: can you boot to amd64? I want final test of context_pmc3 after merging from trunk. 10:10
Commit is coming in next few minutes, so no hurry
mikehh I am there - Ubuntu 9.04 amd64 10:11
bacek mikehh: ok. 10:12
Anyone on here not on Linux? 10:14
mikehh: ok, dcommiting now. 10:15
r40952 10:18
make test passed on linux/i386
bacek reviewing diff to trunk
dalek rrot: r40952 | bacek++ | branches/context_pmc3 (75 files):
Last merge from trunk before mergin back.

  \tMANIFEST
  \tdocs/pdds/pdd17_pmc.pod
  \tinclude/parrot/pmc.h
  \tsrc/gc/api.c
  \tsrc/ops/set.ops
  \tsrc/pmc.c
  \tsrc/pmc/eventhandler.pmc
  \tsrc/pmc/exception.pmc
  \tsrc/pmc/nci.pmc
  \tsrc/pmc/sub.pmc
  \tt/op/gc.t
10:21
purl i think MANIFEST is used for a ton of things, yes.
purl it has been said that t/op/gc.t is going to cause problems because I dont think I faithfully reproduce the interface
mikehh bacek: g++ build fails on src/pmc.c 10:33
bacek: gcc build ok make test PASS 10:34
bacek mikehh: ok. nopaste output of g++. I'll check it
mikehh bacek: still got *** glibc detected *** ./parrot_debugger: double free or corruption (!prev): 0x000000000105b9d0 *** + backtrace with t/tools/parrot_debugger.t although it passes 10:36
jdv79 Coke: i did install-dev. its that i think i did install a long time ago and that was interfering. its fixed now. i had to delete some directories. 10:37
mikehh bacek: just as follows:
src/pmc.c
./include/parrot/pmc.h: In function ā€˜void Parrot_pmc_destroy(parrot_interp_t*, PMC*)’:
./include/parrot/pmc.h:56: error: previous declaration of ā€˜void Parrot_pmc_destroy(parrot_interp_t*, PMC*)’ with ā€˜C++’ linkage
src/pmc.c:108: error: conflicts with new declaration with ā€˜C’ linkage
make: *** [src/pmc.o] Error 1
bacek: svn properties need setting on t/pmc/integer-old.t and tools/dev/parrot_shell.pl 10:44
otherwise codetest PASSes 10:45
bacek mikehh: I'll fix g++ failure. svn properties can be fixed after merge. And I actually can't fix them before :)
mikehh bacek: I'll do that
bacek mikehh: ok, thanks 10:46
10:50 masak joined
dalek kudo: 2f22b87 | moritz++ | src/setting/Any-num.pm:
use Nums instead of Rats in !to-radians
10:51
rrot: r40953 | mikehh++ | branches/context_pmc3 (2 files):
set svn properties on t/pmc/integer-old.t and tools/dev/parrot_shell.pl
10:55
rrot: r40954 | bacek++ | branches/context_pmc3/src/extend.c:
[cage] Replace few interp->ctx with CURRENT_CONTEXT macro for simplify grepping in future.
10:58
rrot: r40955 | bacek++ | branches/context_pmc3/src/runcore/cores.c:
Remove check of 'pc' in fastcore. Put TOD mark instead
10:59 quek joined
dalek a: 4093f18 | fperrad++ | (2 files):
fix build with default --prefix
11:00
a: 9ed409a | fperrad++ | config/makefiles/pmc.in:
install PMC in languages/lua/dynext
a: e1bcbe4 | fperrad++ | .gitignore:
fix .gitignore
bacek mikehh: ok. Time to retest. I'll check parrot_debugger now
dalek rrot: r40956 | bacek++ | branches/context_pmc3/include/parrot/pmc.h:
Restore lost PARROT_EXPORT on Parrot_pmc_destroy.
11:02
rrot: r40957 | bacek++ | branches/context_pmc3/lib/Parrot/OpTrans/CGoto.pm:
[cage] Drop useless #include "parrot/interpeter.h"
bacek mikehh: erm... I can't reproduce parrot_debugger failure... 11:04
mikehh bacek: I'll nopaste it in a bit 11:07
bacek mikehh: ok 11:08
mikehh bacek: fulltest PASSes at r40953
bacek mikehh++ #Hooray!
bacek rebuilding rakudo.
nopaste "mikehh" at 94.3.240.143 pasted "prove -v t/tools/parrot_debugger.t in context_pmc3 branch" (128 lines) at nopaste.snit.ch/17794 11:14
mikehh bacek: the backtrace comes from test 41 - print string registers when none exist - it does not happen in trunk 11:17
the backtrace I mean 11:18
bacek mikehh: hmm... I'll try to fix it.
mikehh it did but got fixed
I think it was dukeleto 11:19
bacek mikehh: do you remember revision?
mikehh I'll see if I can find it 11:20
bacek mikehh: ok. 11:21
rakudo's make test passed on my box.
11:23 donaldh joined
bacek fperrad: ping 11:25
fperrad bacek, pong
bacek fperrad: how I can test lua? It builds, but complains about Test::More 11:26
nopaste "bacek" at 122.110.41.34 pasted "Lua patch for fperrad++" (30 lines) at nopaste.snit.ch/17795 11:27
bacek fperrad: with nopasted patch.
fperrad bacek, 'make test' uses files in build tree with relative path 11:30
remember when all languages were in languages/ subdir
bacek so I just have to move it into languages and rebuild?
partct make test passed 11:31
fperrad: some conflicts with installed parrot... 11:32
fperrad: nm. softlink problem 11:33
fperrad bacek, no conflict, just never migrated
11:33 kid51 joined
bacek fperrad: there is couple of warning about casting FLOATVAL to long int. Ignore them? 11:34
fperrad bacek, yes 11:35
11:37 szabgab joined
bacek fperrad: do you use custom Exceptions in lua (inherited from Exception PMC)? 11:39
11:40 whiteknight joined
whiteknight bacek: how goes it? 11:42
bacek parrot fulltest, rakudo test, partcl test passed. 11:43
fperrad bacek, no, just common die $S0
bacek Checking lua atm
fperrad: thanks
fperrad: lua's make test should pass on trunk? 11:46
fperrad bacek, no ~150 errors, see smolder.plusthree.com/app/public_pr...reports/12 11:48
dalek tracwiki: v8 | whiteknight++ | JITRewrite 11:49
tracwiki: +some info about LLVM from the website.
tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff
tracwiki: v9 | whiteknight++ | JITRewrite
tracwiki: trac.parrot.org/parrot/wiki/JITRew...ction=diff
bacek fperrad: Hooray! I didn't broke it. 11:50
whiteknight LLVM?
purl hmmm... LLVM is a big huge thing with not much docs, but it works or low-level virtual machine or at www.llvm.org
bacek fperrad: thanks! (But we definitely need more tests in parrot...)
whiteknight who was supposed to be doing that for GSoC, Tewk? 11:51
bacek ok.
LAST CALL.
whiteknight bacek: DO IT!
bacek hides 11:57
r40958
whiteknight EVERYBODY PANIC!
purl i guess everybody panic is web.archive.org/web/20070216080911/.../panic.gif
moderator HTTPS CERT EXPIRED | www.parrot.org | Improve test coverage for FixedPMCArray and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON 11:57
dalek rrot: r40958 | bacek++ | trunk (77 files):
Merge context_pmc3 branch into trunk.
11:58
bacek purl++ # YAY! 12:00
whiteknight bacek++ 12:01
bacek fperrad: I've attached my patch for Lua into mailing list message. Same as in nopaste
moritz any paptches for rakudo necessary? 12:02
whiteknight yes, he attached it to his last email
doesn't look too bad though 12:03
bacek moritz: attached to same message as well
moritz ok
bacek Hmm... It took longer than I expected... 1.5 hours instead of 0.5 12:04
bacek getting old
purl it has been said that getting old is tough but it beats the alternative
whiteknight lots of cleanups and refactors to do still, but this was an excellent first step
bacek botsnack
purl :)
12:05 Zak joined
whiteknight that is a gigantic freaking diff 12:06
bacek ~8k lines
7.5
whiteknight purl msg jrtayloriv bacek merged his branch in this morning. We will merge the kill_parrot_cont branch in over the weekend, to give time for this to settle. 12:07
purl Message for jrtayloriv stored.
whiteknight 1.6.0 is going to be the most eventful release ever 12:08
whiteknight should start updating NEWS now
12:08 payload joined
bacek Who is release manager of 1.6? 12:08
jonathan particle, iirc 12:09
whiteknight yes, particle
purl The most abundant particle in the universe is the moron. or spin 1/2, charge 2/3 or jerry gay or a boson. or a bozon. or a bogon or one bad mobo. or full of lies or mailto:jerry.gay@gmail.com or thinking that others are boring
dalek TT #970 created by bacek++: [todo] Remove Parrot_Context structure in favor of ATTRibutes in Context ...
whiteknight bacek: so you created the PMC as a wrapper around Parrot_Context, and you created a proper API? 12:11
bacek fsvo "proper"
whiteknight so the next step is TT #970 to kill the struct and just use ATTRs?
dalek TT #971 created by bacek++: [todo] Add "current" versions of Parrot_pcc_get_foo and Parrot_pcc_set_foo ... 12:12
bacek whiteknight: there is more steps than one :) But ATTRs is obviously first 12:13
whiteknight yes, many steps 12:15
12:16 rbaumer joined
dalek TT #972 created by bacek++: [todo] Remove "old" context related function such as "parrot_gc_context" 12:16
whiteknight testing trunk on win32 now 12:18
(I haven't done this in a long time)
I need to look at win64 too, before the release
It amazes me how much slower "make -j3 coretest TEST_JOBS=3" runs on win32 then on linux32 12:21
dalek rrot: r40959 | mikehh++ | trunk (4 files):
fix svn properties
12:22
moritz whiteknight: uhm, does it even start 3 parallel jobs on windows?
whiteknight it starts at least two
moritz also for the tests? 12:23
whiteknight yes sir
dalek TT #973 created by bacek++: [todo][rfc] Review content of src/gc/alloc_register.c and ...
whiteknight I'm using the mingw32-make that comes with strawberry, not stupid nmake
bacek ok, I've dumped next steps for Context cleanups as trac tickets. EVERYONE JOIN THE PARTY! 12:25
dalek TT #974 created by bacek++: [todo] Mark publicly exposed functions in src/call/context.c with ... 12:26
whiteknight excellent work bacek!
jonathan bacek++
bacek "JFDI" robot :) 12:28
Coke msg jdv79 awesome 12:29
purl Message for jdv79 stored.
Coke msg jdv79 (if you're adding to smolder, I guess I can't drop TAP support in make test just yet. =-)
purl Message for jdv79 stored.
jonathan afk for a while
Coke fears to update partcl's parrot. 12:31
whiteknight Coke: The old one wasn't doing you any favors
moritz bacek: rakudo with latest parrot + your patch fails a few tests
t/spec/S06-advanced_subroutine_features/wrap.rakudo ............ Failed 57/60 subtests
t/spec/S06-multi/lexical-multis.t .............................. Failed 12/14 subtests
bacek Coke: Files=74, Tests=1378, 390 wallclock secs ( 0.66 usr 0.12 sys + 346.42 cusr 4.87 csys = 352.07 CPU)
Result: PASS
moritz: looking 12:32
Coke bacek;awesome. now I just need torun spec test to be sure. =-)
./src/pmc/sub.pmc: In function 'Parrot_Sub_nci___get_regs_used': 12:33
./src/pmc/sub.pmc:901: warning: logical '&&' with non-zero constant will always evaluate as true
moritz t/spec/S12-class/interface-consistency.rakudo .................. Failed 2/8 subtests 12:34
12:37 whiteknight_ joined, ruoso joined, wknight8111 joined
wknight8111 I call #973 12:38
bacek wknight8111: and naming is slightly inconsistent too 12:39
but "register" functions shouldn't be exposed anyway
wknight8111 the whole alloc_register.c file needs to disappear 12:40
bacek wknight8111: +1
purl 1
whiteknight I would like to add VTABLE_get_*_keyed_int to access registers 12:41
bacek looks about all right 12:42
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40959 - Ubuntu 9.04 amd64 (g++) 12:44
bacek mikehh: thanks for fixing svn props.
moritz: hmm... t/spec/S06-advanced_subroutine_features/wrap.rakudo passed on my box. 12:46
moritz: and "lexical-multis.t" too 12:47
moritz: "interface-consistency" failing todoed test. 12:48
mikehh got to take a break for a bit - bbiab
moritz bacek: I created tt #975 with a more extensive summary
bacek moritz: ok, thanks.
moritz bacek: I'm on amd64 here
bacek moritz: ah, ok. 12:49
dalek rtcl: r679 | coke++ | wiki/SpecTestStatus.wiki:
Resolve Issue #101
12:50
TT #975 created by moritz++: Failed Rakudo tests due to context_pmc3 merge
bacek moritz: ouch. Looks like segfaults on amd64. 12:51
moritz bacek: I'm now trying again, this time deleting parrot's install location first 12:54
if the problem persists, I can try to give you backtraces
bacek wonder why most of his refactors causing major failures in unexpected places... 12:55
moritz: it will be helpful. 12:57
moderator HTTPS CERT EXPIRED | www.parrot.org | Add test after fixing bugs | Improve test coverage for FixedPMCArray and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON 12:59
moderator HTTPS CERT EXPIRED | www.parrot.org | Add test after fixing bugs after context_pmc3 merge | Improve test coverage for FixedPMCArray and NameSpace / Fix Segfaults for Coke / Port Tests to PIR / Merge Stable Branches for 1.6 SOON
moritz bacek: after deleting parrot_install/ everything looks clean again 12:59
bacek: I'm running a full spectest again, so expect results in 30 minutes :-) 13:00
bacek moritz: I will not survive for 30 minutes :) I had 5 meetings today at $dayjob... 13:01
And they almost killing me... 13:02
13:03 sri_ joined
moritz contrary to common believe, meetings and not premature optimization is the root of all evil 13:03
bacek moritz: +1 :) 13:04
szbalint purl: litany against meetings? 13:08
purl "I must not attend meetings. Meetings are the mind killer. Meetings are the little-death that brings total obliteration. I will face my meeting. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the wasted time has gone there will be nothing. Only I will remain."
particle whiteknight: thanks for taking responsibility for these merges 13:10
whiteknight it's the open source way. If you want something done, do it 13:13
bacek looking in context_pmc3 branch and checking discussions about converting contexts to PMC for last couple of year 13:14
NotFound Looks like 1.5 - 1.6 will put very high the mark of changes between releases. 13:16
particle great work, bacek. hopefully you folks will be able to squash any remaining bugs quickly and without much pain. 13:17
bacek particle: I hope so. This branch was little bit more painful than I expected... 13:18
particle you have been doing a fair amount of exploratory surgery here, i see 13:19
i'm interested in seeing coverity scan results on parrot 13:20
we've made major changes to the core this month
bacek start thinking about implementing Generational GC (or plug existing one) for Parrot. 13:27
13:28 Zak joined
bacek ok. $bed time. 13:31
I'll try to fix any failures tomorrow and over weekend caused by branch merge. Simple PIR files attached to trac tickets will be very helpful. 13:32
Coke (litany) wow, that's pretty close to the original... not that I memorized it or anything. 13:33
whiteknight bacek: how do I apply that rakudo_ctx.diff patch to rakudo? 13:38
moritz whiteknight: 'git apply rakudo_ctx.diff'
whiteknight: then 'echo 40958 > build/PARROT_REVISION' 13:39
whiteknight thanks moritz++
13:43 szabgab joined
dalek kudo: 1cb71e4 | moritz++ | src/setting/Any-num.pm:
fix typo found by Jimmy++, moritz--
13:46
TT #975 closed by moritz++: Failed Rakudo tests due to context_pmc3 merge 13:50
Coke "why doesn't this bisect work" (turns out my "run the the test" script was doing a git svn update.
NotFound Why the empty string is the desired result of cloning or boxing a null string? They are different things. 13:51
Coke good question. 13:52
purl Yeah, it is. I'm stumped.
pmichaud initial spectest shows about a 20% speed loss after context_pmc3 branch merge 14:00
I'll do a more precise set of runs to get a better estimate
jdv79 Coke: you wanna add the smoldering code to partcl or you want me to? 14:04
dropping TAP (just got your message)... could be a problem. 14:05
what other format would it be? could we write an adapter? 14:06
Coke jdv79: it'd be in tcl-native testing format. 14:09
try "make t_tcl; ./tclsh t_tcl/if.test" 14:10
but that's not for ages.
jdv79 is there a name i can google for a spec or something?
Coke holy crap. if I google for "tcl test output format" 2 of the top 5 hits are partcl related. =-) 14:11
jdv79 yeah, nice
jrtayloriv Has anyone else already reported segfaults in t/tools/parrot_debugger.t?
Coke jdv79: I don't think there's a spec. 14:12
jdv79 ok
i'll peek at it then
for now i guess it'll work cause its TAP
nopaste "jrtayloriv" at 96.238.199.12 pasted "Segfaults in t/tools/parrot_debugger.t" (89 lines) at nopaste.snit.ch/17796 14:13
NotFound jrtayloriv: I also have that, but is a TODOed test, so it pass
jrtayloriv NotFound, I was wondering why the test was passing for me. OK -- thanks 14:14
14:15 Psyche^ joined 14:16 MoC joined
jrtayloriv msg dukeleto -- Which version of gc.t are you talking about? I didn't know there was something waiting on me, sorry. 14:19
purl Message for dukeleto stored.
14:26 rdice joined
Coke does bacek's mergeback potentially reduce memory usage? 14:26
(by stopping context leaks?)
jonathan In theory, I'd expect so. 14:28
Coke k. i'll try my one memory hog that >almost< passed before.
trac.parrot.org/parrot/ticket/732 might be closable, then. 14:31
14:32 theory joined
he__ src/jit/ppc/core.jit:1299: error: 'Parrot_Context' has no member named 'state' 14:34
(with -current source just updated, building on NetBSD/macppc 5.0)
whiteknight we shouldn't have jit support on ppc 14:36
at least, not that I was aware of
he__ parrot has had that for a considerable time.
NotFound Why the frac some configure probes "Does your platform support..." says "done" instead of yes or no? 14:37
Coke NotFound: all handrolled. 14:39
probably simple enough to fix.
NotFound Coke: With the left hand by a dexter? ;) 14:40
he__ whiteknight: smoke test on NetBSD/macppc 5.0 with jit completed OK last on Aug 7 2009, rev. 39951. 14:41
(yes, I crank my tests manually) 14:43
NotFound parrot_debugger segfault is at Context.destroy 14:46
Coke jdv79: sadly, expr.test still memory panics. 14:50
14:50 sri_ joined
Coke error:imcc:syntax error, unexpected DOT ('.') in file 'EVAL_131362' line 71 14:50
(that's a lot of eval, yo.)
mikehh jtayloriv: We had the problem before - I am not sure it is from a TODE test - I think it is test 41 - see nopaste.snit.ch/17794 14:51
TODO
jand we had the problem in trunk fairly recently but it got fixed but occured in the context_pmc3 branch which has been merged 14:53
dalek a: a58a573 | fperrad++ | (2 files):
fix build after trac.parrot.org/parrot/changeset/40958
a: 1ab8538 | fperrad++ | src/pmc/luathread.pmc:
Parrot_Context is gone
Coke the double free usually happens at process exit time.
Coke the todo test is probably a red herring.
dalek rtcl: r680 | coke++ | trunk/config/PARROT_VERSION:
This revision has some segfault fixes.
14:55
14:55 quek joined
mikehh Coke: I just built and tested r679 - it PASSes - I'll try at the new revision 14:56
partcl r679 builds on parrot r40959 - make test PASS - Ubuntu 9.04 amd64 (g++) 14:58
Coke mikehh: all 680 does is bump the minimum required parrot version to 40959 14:59
... so you don't have to test that revision, since you already did that.
mikehh Coke: I am running make spectest at the moment 15:01
Coke danke. 15:02
15:03 iblechbot joined 15:07 sri joined
he__ Hmm, simply removing the offending line made "make test" pass. 15:12
15:21 donaldh joined
Coke our jesse hit boing boing. 15:24
gadgets.boingboing.net/2009/09/02/p...iptio.html
mikehh rakudo (1cb71e4) builds on parrot r40959 - make test / make spectest (up to r28178) PASS - Ubuntu 9.04 amd64 (g++) 15:30
pmichaud Looks like context_pmc3 gives ~ 13% slowdown over what we had previously
not bad 15:31
15:36 dukeleto joined
Coke gah, SLOWER? 15:42
mikehh cardinal - builds on parrot r40959 - rake test:all - same 3 failures - Ubuntu 9.04 amd64 (g++) 15:43
decnum-dynpmcs r181 builds on parrot r40959 - make test PASS - Ubuntu 9.04 amd64 (g++) 15:48
15:50 GeJ_ joined
whiteknight I can't build Rakudo 15:52
ah nevermind, I have the wrong parrot version somehow 15:53
I have to look at the diff again. the new Context PMC might not be recycling frames anymore. Once we convert it to use ATTRs properly, and allocate through the fixed-size allocator we should see performance come back to where it was 15:56
whiteknight hopes 15:57
Coke (1.8 * 1.13) 16:01
purl 2.034
Coke (rought guess at how many hours it'll now take to run 'make spectest' for tcl.)
16:05 marius joined 16:07 kjeldahl_ joined 16:09 theory joined 16:10 HG` joined
dukeleto bacek++ for merging context_pmc3 and the hilarious commit message 16:12
whiteknight Coke: those are hours of your life you will never get back
16:15 quek left
Coke whiteknight: I swear sometimes you're just trying to depress me. 16:21
16:22 szabgab joined
whiteknight Coke: I would never! I want you to be happy 16:22
mikehh partcl make spectest has been running for about 90 minutes so far - still on string 16:25
jrtayloriv Is there any way to look up which architecture the interpreter is running on? 16:26
mikehh mind you i built and tested rakudo, cardinal, decnum_dynpmcs while it was running
jrtayloriv I see that iglobals has a "Config Hash" but I can't find out how to get to it, or whether it even contains what I want.
interp->iglobals, that is
particle jrtayloriv: in pir or c? 16:28
jrtayloriv particle, c
whiteknight jrtayloriv: check out the logic behind the interpinfo opcode 16:29
whatever functions it calls do what you need 16:30
jrtayloriv whiteknight, ok -- thank you.
particle yeah, i was hoping to provid emore info, but i haven't made ctags-vi in a while
*provide
did pluggable_runcore merge? 16:31
whiteknight no
at least, not that I know of
particle damn, that's another potential merge this month
i'd like to see it happen, but time is getting short 16:32
16:32 darbelo joined
Coke particle: so let's merge them. 16:33
he__ Hmm, under "make fulltest", test 3 of t/op/string.t fails, but when I run it manually with "perl -t t/harness t/op/string.t" all the tests succeed. Hints?
Coke the "day or two to sort out a merge" is kind of silly when we can test each merge in order, no?
s/silly/unneeded/
he__: which core is running when the test fails?
whiteknight it is pretty impressive the amount of work we can do in a month
particle coke: there are auto-smokers out there that may miss some revisions
Coke you'll need to insure you're invoking the harness properly to run teh core. 16:34
particle whiteknight: all we need is a few people without other work, and a few slackers willing to volunteer :)
Coke particle: happy path: the combined merges work.
sad path: we can back up and test teh individual revisions.
whiteknight I have plenty of other work to do. I just choose not to do it :)
particle coke: i expect these merges will affect each other, so there will have to be fixups to each branch before they can merge to trunk 16:35
whiteknight happy/sad path: we can back up and make bacek test the individual revisions
Coke particle: sure.
particle whiteknight: yes, you're one of the slackers i'm talking about
Coke why should we pad that with 2 days?
he__ Coke: how do I tell which core it's running with? 16:36
whiteknight this context_pmc3 branch is already showing signs of some fallout
we want all the time we can get to smooth things out
16:37 skeeterbug joined
whiteknight I honestly had no idea that we had a working JIT on PPC 16:37
Coke he__: look at the output of 'make test'.
particle leo++
Coke er, fulltest
he__ Coke: that's what I did...
Coke ok. in there it'll say it was running 'testj' or something. 16:38
if you nopaste it, I can show you.
whiteknight: but we have /version control/
he__ The invocation of the pass where it failed was "perl t/harness --gc-debug --running-make-test -j --runcore-tests"
Coke he__: ok; use those options, and add the name of the test on the end. 16:39
he__: (you might need to/be able to remove runcore tests and running make test)
he__: (but keep gc-debug and -j)
he__ OK, I also see in the output "src/string/api.c:1051: failed assertion 's'", followed by a core dump. 16:40
jrtayloriv whiteknight, interpinfo doesn't seem to contain any information about the architecture in it -- it's all GC-related data. What I need is some sort of enum that tells me whether they are using i386, i686, sparc, ia64, etc.
Coke jrtayloriv: that's in the config.
look at:
16:40 MoC joined
whiteknight I'm sorry, I swore that was in interpinfo somewhere 16:40
Coke code.google.com/p/partcl/source/bro...ib.pir#135 16:41
particle i'm wondering, do we generate a c header with parrot config info?
jrtayloriv whiteknight, no prob
Coke, thanks
Coke jrtayloriv: np 16:42
particle we generate pir/pasm, and pm files, but .h?
Coke particle: if you can get it from PIR, you can get it from C, no? 16:43
whiteknight: technically, the config info lives in the interp. =-)
particle if you call a pir op from c, i guess
Coke config = interp[.IGLOBALS_CONFIG_HASH]
(whoops - look at line 124, jrtayloriv ) 16:44
jrtayloriv Coke, right, I saw it -- thanks again.
he__ OK, so that's the jit variant, and ... this may prove that simply commenting out the offending line which prevented the build in src/jit/ppc/core.jit, line 1299 was not the right course of action. 16:46
dalek kudo: c6bf7b8 | moritz++ | (3 files):
make Rakudo build on parrot after context_pmc3 branch merge
16:52
mikehh partcl make spectest (took 1 hour 45 minutes + a few seconds) no segfaults - log file = 1040114 16:53
Coke mikehh++ - did all files have a "Passed" line near the end? 16:56
(how are you running the tests, 'make spectest' ?)
(if you use 'make specinfo', it does the same thing, but also captures output into docs/)
mikehh Coke: make spectest 2>&1 | tee spectest.679.40979.log 16:58
Coke: I try that next time
Coke either that or skipped 16:59
Coke then you can do an svn diff to see if there were any regressions.
mikehh++
(I'd be happy to give you commit bits to update the spec test results. =-) 17:00
mikehh I don't think I'll be running it every test run - maybe a couple of times a week 17:01
17:02 Andy joined 17:05 fperrad_ joined
dalek rrot: r40960 | fperrad++ | trunk/tools/dev (2 files):
[languages] install dynops & dynpmc in languages/lang/dynext
17:06
17:12 mokurai joined 17:20 iblechbot joined
dalek rtcl: r681 | coke++ | trunk/docs/spectest- (2 files):
Update spectest status , notably:

  - new record passing tests, up 37.
  - run against a parrot post context mergeback.
  - this run took 31% longer than the last run. (!!)
   (partially due to the 2 new test files)
17:27
17:30 joeri joined
duk3leto 'ello 17:32
17:33 cotto joined
Coke I eagerly await our new profiling overlords. 17:35
cotto ohai 17:37
Coke cotto: any blockers on mergeback? 17:46
I'm running one of the small spec tests for tcl now to see what happens. (of course, that loads tcltest.tcl and init.tcl, which is a LOT of code.) 17:47
cotto: do you keep the pprof output in memory before dumping it, or somewhere in /tmp?
ah, there it is.
cotto it's currently written to a file as it's collected. 17:49
nopaste "coke" at 72.228.52.192 pasted "cotto: memory pig." (22 lines) at nopaste.snit.ch/17797 17:50
Coke (that runs to completion on trunk.)
cotto: "profile will usually be named parrot.pprof.XXXX" - XXXs in teh wrong spot? 17:51
also, how did you get the parrot PID?
cotto nope. I recently changed it.
getpid()
Coke ah. that's not exposed to PIR, is it.
(nope) 17:52
cotto That runcore still has some bugs that I need to fix, so it's not surprising that it breaks with tcl. I'll be merging back once it's a little more useful. 17:53
Coke ok. I've (previously) found it ok with smaller test files, FYI.
is getpid c89? 17:56
jrtayloriv Coke, Don't think so -- seems like that would be part of a POSIX/BSD standard, rather than a C Language standard. 17:59
Coke, my man pages aren't showing it as c89, anyway.
darbelo Coke: www.opengroup.org/onlinepubs/009695...etpid.html
cotto Coke, good point. I should check if windows has that function. 18:00
Coke cotto: if it doesn't, i suggest writting a Parrot_* function that we can then invoke from pir.
cotto Yup. They just spell it with a leading underscore. 18:01
18:02 chromatic joined
whiteknight getpid is not c89 18:02
cotto Hmmm. src/gc/malloc_trace.c uses it without the leading underscore.
whiteknight that file should be deleted 18:03
18:03 skeeterbug left
cotto It exists, it's just deprecated. A #define should suffice. 18:03
dalek rrot: r40961 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
[profiling] #define getpid to _getpid on windows and get rid of some macros that are taken care of by hints
18:17
Coke from pir, if I do a dlfunc, that define isn't going to help, yes? 18:24
cotto correct; it won't 18:25
18:36 rbaumer joined 18:39 silug joined 18:41 jan joined 18:59 theory joined
darbelo Ayone familar with the unmanagedstruct PMC: ping 19:14
NotFound whiteknight: looks like #define GC_USE_FIXED_SIZE_ALLOCATOR 1 is working now 19:15
whiteknight really? on all platforms? 19:16
I remember it had the most problems on win32
NotFound amd64
darbelo Where do I #define that to test it?
whiteknight should be in include/parrot/gc_api.h I think
NotFound darbelo: include/parrot/gc_api.h
whiteknight If it's working, we can try enabling it and see if it gives us a performance boost 19:17
NotFound whiteknight: partcl and rakudo pass make test
whiteknight okay, that's a good sign
darbelo ok, running make test on OpenBSD amd64 19:18
whiteknight I'm testing on win32 now 19:19
19:20 donaldh joined
whiteknight doesn't build on win32 with the flag 19:23
no idea why either, it doesn't spit out any error messages 19:30
make just stops at miniparrot
NotFound Building now in linux 32 19:34
whiteknight If we can get it working on win32, that should be it 19:36
I know it works elsewhere
Or, I'm reasonably sure about it 19:37
NotFound There is some difference in the code for windows?
darbelo whiteknight: make test is chugging along fine in OpenBSD.
whiteknight NotFound: none that I know of. I'm staring at the code now and don't seen any reason why it should fail 19:38
It just doesn't wok
work
how would I even go about debugging something on Windows? I have Visual Studio, but if I'm notbuilding Parrot in VS it's basically worthless as far as I can see 19:44
NotFound whiteknight: I use printf debugging ;)
jrtayloriv whiteknight, looks like gdb is available for windows 19:49
whiteknight yeah, I'll have to look at that later
because I hate printf debugging 19:51
it's only good to tell you where a problem is happening, not what causes it 19:55
20:03 rbaumer joined, MikHel joined
whiteknight okay,the problem appears to be happening somewhere in Parrot_gc_get_attribute_pool 20:09
It allocates sets of PMCs with attribute sizes 24, 4, 12, 8, and then it breaks when it tries to allocate an object of size 32 20:12
NotFound What is GC_ATTRIB_POOLS_HEADROOM ? 20:17
whiteknight got it!
it's like a buffer, so we allocate space for more pools then we need
the goal is to try to reduce the number of resizes for the pool
I think it's value is 8
20:18 bacek joined
bacek Good morning 20:18
purl And good moroning to you, bacek.
whiteknight hello bacek 20:19
bacek whiteknight: hi.
How many complains after merge?
whiteknight I think I have my fixed-size gc problem solved
yes, apparently PPC has JIT, and it's broken
chromatic PPC JIT is probably fixable, but I don't know how worthwhile it is. 20:20
whiteknight I'm not able, so I'm not going to give any opinion on it
chromatic It's usually something minor, like changing the way you access a struct member. 20:21
whiteknight yeah, I just don't know PPC asm very well
chromatic I fixed that up on the context branch before it merged, but I didn't fire up the PPC box to test.
whiteknight although I probably have a book about it somewhere
NotFound whiteknight: Do you have a patch? 20:23
moritz opbots: trust whiteknight 20:24
slavorg But I already trust whiteknight
slavorgn But I already trust whiteknight
dalek rrot: r40962 | whiteknight++ | trunk (2 files):
Fix and enable the fixed-size object allocator on windows. Also, enable it on Linux. The problem was that I wasn't initializing the pools array properly, leaving the last item in the array non-null, which caused some issues later.
20:26
whiteknight NotFound: better, and more reckless! committed in r40962
NotFound Ah, good :)
whiteknight I'm testing on TEH LUNIX now 20:28
Coke opbots, names
(that's how you get them to re-trust)
bacek: full spect test on partcl had no (major?) regressions.
(we dropped one test in one file, but that was probably me.) 20:29
whiteknight ...and tests pass on Linux64
NotFound bacek: there is a segfault in a parrot_debugger test, but is a TODOed test for a feature that doesn't work since long time
Coke NotFound: the segfault you found in binary after clone null string fix is already reported in trac for another test file.
in binary.test for partl. 20:30
(partcl) (AIGH)
chromatic I fixed a couple of those last night.
NotFound Coke: I'm having a mix of segfaults in my head and no longer know what is what %-)
bacek NotFound: I hope dukeleto can fix it 20:31
Coke: good!
whiteknight and with that, gentlemen, I'm leaving.
NotFound chromatic: I'm not sure that an empty string is a good clone of a null string
chromatic I'm not either, but what are the other options? 20:32
whiteknight STRINGNULL
NotFound A null styring
chromatic We should have a STRINGNULL. That'd solve so many problems.
pmichaud Null String exception
what happens if we clone a Null PMC ?
whiteknight #define STRINGNULL 0x01
#define STRINGNULL (STRING *)0x01
chromatic I don't like that #define; I say we make a real STRING and consider it STRINGNULL. 20:33
whiteknight It's not the same as NULL, but it's definitely not a valid string
chromatic Null object pattern.
whiteknight that's fine too. Whatevs
NotFound What will be the benefit? As long as string don't have a function table, I don't see any.
particle i got so damned much pushback years ago when i tried to add STRINGNULL
whiteknight and now you are getting a pushforward!
chromatic How do you tell a NULL pointer (probably an accident) from a NULL STRING (possibly on purpose)? 20:34
whiteknight later
particle chromatic: by the length of its tail.
chromatic This all smells like a semi-predicate problem to me. 20:35
If we continue to treat NULL and NULLSTRING as equivalent, our function annotations in C won't help us find real bugs.
particle please create STRINGNULL. 20:36
NotFound If we annotate as non null functions called directly with the content of string registers that can be null, surely they don't help. 20:37
chromatic Let me think about how to do that easily and sanely.
If we have STRINGNULL, we can initialize STRING registers to it directly, same as we do PMC registers to PMCNULL.
NotFound Don't forget that this may imply to change a lot of init vtable functions to initialize STRING * attrs 20:38
particle autoattrs should do that
NotFound autoattrs just allocate space and zero fills right now
particle right, but it can be made smarter, to fill with PMCNULL or STRINGNULL as appropriate 20:39
chromatic That's definitely a benefit of autoattrs. 20:40
NotFound Not a bad idea, it may allow to delete several init 20:41
chromatic Hopefully! 20:43
Coke Or, we could re-examine the proposal to eliminate strings in place of Strings. =-)
20:44 rbaumer left
dalek rrot: r40963 | chromatic++ | trunk/src/jit/ppc/core.jit:
[JIT] Removed a mistake in PPC JIT introduced in a fixup for the context_pmc3
20:47
NotFound What's store_global ? Old version of set_hll_global ? 21:07
chromatic Sounds right.
dalek kudo: b51d94c | (Solomon Foster)++ | src/setting/Complex.pm:
Add Complex.sin and Complex.cos functions.
21:18
21:24 joeri left
Coke didn't I rip those out? 21:27
21:27 bacek joined
dalek rrot: r40964 | NotFound++ | trunk/t/pmc/threads.t:
[cage] make some TODOed test at least compile
21:32
Coke NotFound: ah, guess not. danke. 21:34
NotFound Anyway one of that tests seem to depend on gone with the wind features 21:35
Coke yah, those are harder to catch when ripping things out (skip/todo) 21:39
ok, committing a massive hack to partcl's [regexp] to avoid the recursion on the regexp '($|^X)*' {} 21:40
(it's really a very teeny hack, but still.)
code.google.com/p/partcl/issues/detail?id=102 if anyone can remember the original PGE ticket I can link to it.
21:41 Whiteknight joined
Coke are events working for parrot yet, anyone using them? 21:42
bacek Coke: I don't think that events are working... 21:43
chromatic They should be.
If they aren't, the timer tests will start failing.
Coke (need to support [after], [bgerror], [vwait]...) 21:44
Whiteknight we need to get some benchmarks for pre- and post-40962 21:45
Coke yay, that hack adds at least 168 more PASS.
Whiteknight to see if the fixed-size allocator really does save us anything
dalek rtcl: r682 | coke++ | trunk/runtime/builtin/pid.pir:
improve [pid] stub.
21:49
rtcl: r683 | coke++ | trunk/runtime/builtin/regexp.pir:
Update issue 102

hang.
Coke still has 9 segfaults in the spec run. 21:52
jrtayloriv Is GMS garbage collection supposed to be building without errors? If so, it supposed to be *working*? 21:53
bacek jrtayloriv: no... 21:54
jrtayloriv bacek, ok thank you.
dalek rtcl: r684 | coke++ | wiki/SpecTestStatus.wiki:
workaround committed for issue #102 lets these files run to completion.
bacek Whiteknight: now much effort to make GC pluggable?
(And plug Harmony's gc for example) 21:55
Whiteknight bacek: I really have no idea. I suspect it shouldn't be too hard. See what I did in one evening with the INF collector
However, the bigger issue is the string allocator, which is an evil mess
bacek Whiteknight: good point.
Just throw it away. 21:56
21:56 japhb joined
Whiteknight bacek: that might not be such a bad idea, except I don't think it's well-encapsulated 21:59
darbelo Whiteknight: encapsulate it, then throw it away :) 22:02
Whiteknight that's not too far off the mark 22:03
22:05 beta joined
Coke huh. [string repeat {;incr i;} 1500000] finishes pretty quickly. if I turn that around and pass it to [proc] to build a sub with, performance goes all to hell. 22:05
chromatic Does [proc] reevaluate its body on every invocation? 22:10
Coke proc builds the sub.
I'm not even getting to the invocation. 22:11
chromatic Does said sub reevaluate?
Coke the top level does not, IIRC. anything nested does.
but we're not even getting that far.
22:12 beta left
chromatic Okay. 22:12
Coke a proc that has about 1000 * that length takes about 8s to compile.
chromatic Wow.
Coke a proc that has about 2000 * that length takes about 35s to compile.
chromatic Big O, Little O... I'm the one with the gun.
Coke the test is trying to compile one with 1,500,000
This is my bOOmstick.
I think I'll avoid trying to fix that one until the profiler is working. 22:13
chromatic Agreed. 22:14
Coke lesse, expr.test was running out of memory, but that was after emitting a bunch of PIR compilation errors, wonder if I can avoid the memory explosion by fixing that. 22:18
dear god, I'm using THREE CVSs to hack on partcl. 22:19
s/CVS/VCS/
(though one is cvs)
dalek rtcl: r685 | coke++ | wiki/SpecTestStatus.wiki:
document a hang.
22:25 kid51 joined 22:41 rg1 joined 22:42 payload joined 22:46 payload joined
Whiteknight Coke: what are you using CVS for? 22:59
darbelo Whiteknight: I think TCL uses it, and coke pulls the spectest from there.
23:03 ruoso joined
Whiteknight ok 23:08
23:20 donaldh joined
darbelo Does anyone know where I can find the docs on the format string for the parrot printf functions? 23:23
chromatic I'm not sure we have any. 23:25
darbelo Oh, does anyone know what "%.*s" is supposed to do then? 23:27
chromatic That looks like a standard POSIX sprintf format to me; maybe man sprintf would help you. 23:29
jonathan I think it takes a length as well as a char pointer and outputs that many chars or something like that. 23:35
duk3leto darbelo: man 3 printf 23:51
23:58 Whiteknight joined
pmichaud "%.*s" would be the same as "%.10s" except the "10" comes from an argument instead of being coded in the format 23:58
23:59 Limbic_Region joined