Camelia, the Perl 6 bug

IRC log for #parrot, 2009-09-03

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 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 #parrot
00:02 bacek_at_work jonathan: mikehh should have my patch for Rakudo.
00:03 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 jrtayloriv (the patches attached to them that is)
00:04 chromatic Looking at both.
00:04 jrtayloriv thank you
00:13 dalek parrot: r40934 | chromatic++ | trunk/src (3 files):
00:13 dalek parrot: [PMC] Ensure that all accesses to PMC_sync check the PMC shared flag first, to
00:13 dalek parrot: avoid dereferencing an absent PMC_sync structure.
00:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40934/
00:13 dalek parrot: r40935 | chromatic++ | trunk (6 files):
00:13 dalek parrot: [docs] Updated documentation to reflect PObj layout changes.  Patch by
00:13 dalek parrot: jrtayloriv in TT #958.
00:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40935/
00:13 dalek TT #968 closed by chromatic++: Rename PObj_active_destroy_foo to PObj_custom_destroy_foo
00:13 dalek TT #958 closed by chromatic++: [PATCH]: Doc fixes related to GC and UnionVal
00:15 chromatic Oops.
00:23 chromatic Sigh.  Oh well, fair enough.
00:23 dalek parrot: r40936 | chromatic++ | trunk (35 files):
00:23 dalek parrot: [HLL] Fixed two compilation-breaking typos accidentally committed in r40934.
00:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40936/
00:26 kid51 joined #parrot
00:32 chromatic Turns out svn dcommit commits changes that aren't even in the index.
00:32 chromatic Just when I thought I understood things.
00:36 Whiteknight you're on fire tonight, chromatic
00:37 cotto I think it works!
00:38 chromatic (Hate Driven Development)++
00:39 jonathan So, IIUC, profiling branch is getting merged probably quite soon?
00:41 * 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.
00:42 cotto jonathan, I (literally) just got a decent-looking profile in KCachegrind, so yet.
00:42 dalek tracwiki: v7 | whiteknight++ | JITRewrite
00:42 dalek tracwiki: +info I've received about nanoJIT
00:42 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​JITRewrite?version=7&action=diff
00:42 jonathan cotto: Are there analysis tools for on Windows too, out of interest?
00:42 cotto s/yet/yes/
00:42 jonathan I'm guessing KCachegrind doesn't run there...
00:43 cotto no idea
00:43 jonathan oh, I'm wrong
00:44 jonathan Runs anywhere KDE does in theory.
00:44 jonathan Yay. :-)
00:44 cotto It looks like it'll work through cygwin.
00:45 chromatic $ git add src/hll.c
00:45 chromatic $ git ci
00:45 chromatic $ git svn dcommit
00:46 chromatic But I must first... /away
00:47 jonathan Sleep time - night all
00:47 cotto committed
00:47 treed ere break of day?
00:50 dalek parrot: r40937 | cotto++ | branches/pluggable_runcore (2 files):
00:50 dalek parrot: [profiling] initial working version of pprof2cg
00:50 dalek parrot: generates a mostly-sane profile in kcachegrind, but there are undoubtedly many bugs lurking
00:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40937/
00:54 dukeleto whiteknight++  on the JITRewrite wiki page. very informational
00:55 cotto Whiteknight++ indeed, especially for emailing the devs of the various projects.
00:55 dukeleto msg chromatic what is your git ci alias ?
00:55 purl Message for chromatic stored.
00:57 Whiteknight I was actually surprised to hear about Lightning. It's not too active, but it's still stable and useful
00:57 Whiteknight I was expecting to hear that it was dead and buried and unusable
00:59 cotto CPUs don't really change that much (on that level).
01:04 dalek parrot: r40938 | cotto++ | branches/pluggable_runcore/tools/dev/pprof2cg.pl:
01:04 dalek parrot: [profiling] don't require perl 5.10 just for the say function
01:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40938/
01:04 payload joined #parrot
01:08 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
01:08 Whiteknight great job on it, by the way!
01:09 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
01:09 Whiteknight his is a bigger change and an older branch, so the merge will be messier
01:09 Whiteknight 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
01:09 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
01:10 Whiteknight now if his branch doesn't get the green light, we'll merge yours first instead
01:16 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?
01:16 Whiteknight jrtayloriv: Good question. I think the only thing missing is a mechanism to select it
01:17 Whiteknight all the GC core functions are called by function pointers now, we just need a way to select which pointers we load
01:17 Whiteknight check out the preprocessor nonsense in src/gc/api.c:Parrot_gc_initialize()
01:18 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
01:18 jrtayloriv looks like it would be easy to move out of there though.
01:18 jrtayloriv (or at least, not extremely difficult)
01:19 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.
01:20 jrtayloriv OK, I'll start playing around with it. And asking you a lot of questions :)
01:21 Whiteknight that's fine, questions are good
01:22 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.
01:22 Whiteknight darbelo: can you break it into chunks?
01:23 Whiteknight 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.
01:26 nopaste "darbelo" at 200.49.154.172 pasted "VERY low-hanging fruit." (119 lines) at http://nopaste.snit.ch/17789
01:28 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:29 darbelo $ svn diff | wc -l
01:29 darbelo 233
01:30 darbelo Spread across 8 files.
01:32 darbelo 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
01:34 kid51 kill_parrot_cont branch:  Smolder test on Linux/i386:  http://smolder.plusthree.com/app/pu​blic_projects/report_details/26801
01:34 darbelo dukeleto: Okay, I'll go there tomorrow. I have to catch Z's today :)
01:34 nopaste "darbelo" at 200.49.154.172 pasted "Another batch of low-hanging fruits" (114 lines) at http://nopaste.snit.ch/17790
01:35 darbelo Two pastes so Whiteknight and cotto don0t have to fight :)
01:35 dukeleto darbelo: sounds good. the parrot_debugger needs some love
01:36 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.
01:37 Whiteknight parrot-dev?
01:37 purl i heard parrot-dev was mailto:parrot-dev@lists.parrot.org or http://lists.parrot.org/ma​ilman/listinfo/parrot-dev
01:37 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
01:40 dukeleto darbelo++ for killing -
01:40 dukeleto >strstart
01:40 darbelo dukeleto: Not dead yet, just less visible :)
01:40 dukeleto darbelo: behind an API i guess it what I mean.
01:41 darbelo And some places are going to need a bit more that simple encapsulation.
01:41 darbelo I commented on one example at http://irclog.perlgeek.de/p​arrot/2009-09-02#i_1459378
01:43 Whiteknight darbelo: are you a committer for parrot?
01:44 darbelo Whiteknight: Nope.
01:45 Whiteknight that's no good. Should have brought that up in the last #ps
01:46 kid51 CLA?
01:46 purl CLA is Contributor License Agreement or http://www.perlfoundation.org/​contributor_license_agreement or http://www.parrot.org/foundation/legal or http://www.parrot.org/files/parrot_cla.pdf
01:46 darbelo I wasn't arround last #ps.
01:48 darbelo 'All your code are belong to the PaFo'
01:48 cotto darbelo, first patch committed.
01:50 darbelo That CLA is pretty tame, It didn't even ask for my undying soul.
01:51 cotto darbelo, the first chunk of the second patch leaks if one of those exceptions get thrown.
01:51 dalek parrot: r40939 | cotto++ | trunk/src (5 files):
01:51 dalek parrot: [strings] first of many patches from darbelo++ getting rid of ->strstart abuse
01:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40939/
01:51 darbelo cotto: Which file?
01:51 purl i heard Which file was that error in
01:51 cotto istr that you can use STRINGs in Parrot_ex_throw_from_c_args.
01:52 treed purl: Forget Which file
01:52 purl treed: I forgot which file
01:52 cotto src/interp/inter_cb.c
01:52 cotto %Ss is for STRINGs, iirc
01:53 kid51 kill_parrot_cont branch:  Smolder test on Darwin/PPC:  http://smolder.plusthree.com/app/pu​blic_projects/report_details/26802
01:53 darbelo crap, it DOES leak a string.
01:55 darbelo I'll fix it in a sec. I'm waiting for make
01:55 cotto src/pmc/string.pmc has a similar leak
01:57 darbelo cotto:  "unhandled signature '%Ss' in make_cb", cb_signature); works?
01:58 nopaste "kid51" at 70.85.31.226 pasted "svn diff between trunk (at fork) and kill_parrot_cont branch (at HEAD)" (996 lines) at http://nopaste.snit.ch/17791
01:58 cotto I think so.  You should probably test it to make sure.
01:58 cotto (or check for similar uses)
01:59 darbelo I'm running make test, but I'm not sure it exercises that code path.
01:59 cotto probably not
02:01 darbelo Ah, %Ss works for STRING *, yes.
02:03 nopaste "darbelo" at 200.49.154.172 pasted "revised "src/interp/inter_cb.c" patch for cotto++" (44 lines) at http://nopaste.snit.ch/17792
02:04 darbelo I'll check the other patches for leaks later, I need to sleep now.
02:05 cotto good night
02:05 darbelo night
02:05 darbelo left #parrot
02:07 jdv79 Can't read '/usr/local/runtime/parrot/include/config.fpmc' : No such file or directory
02:07 jdv79 look familiar?
02:07 jdv79 partcl build fails with that
02:08 theory joined #parrot
02:09 Whiteknight goodnight
02:21 dalek parrot: r40940 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
02:21 dalek parrot: [string] avoid ->strstart abuse in profiling runcore
02:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40940/
02:21 dalek parrot: r40941 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
02:21 dalek parrot: [nits] minor code tidying
02:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40941/
02:25 jdv79 i think its from an old installed parrot:(
02:28 dalek parrot: r40942 | cotto++ | trunk/src/interp/inter_cb.c:
02:28 dalek parrot: [string] replace more ->strstart abuse, patch from darbelo++
02:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40942/
02:35 janus joined #parrot
02:43 sri joined #parrot
02:45 jdv79 yup.  yay.
02:59 Zak joined #parrot
03:15 rbaumer joined #parrot
03:20 Coke jdv79: how are you building parrot?
03:20 Coke (and did you run "make install-dev" for parrot?
03:21 donaldh joined #parrot
03:26 Coke seen jdv79 ?
03:26 purl jdv79 was last seen on #parrot 41 minutes and 22 seconds ago, saying: yup.  yay.
03:38 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.
03:46 dalek parrot: r40943 | cotto++ | branches/kill_parrot_cont (3 files):
03:46 dalek parrot: [codingstds] rerun headerizer and fix some codingstd nits
03:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40943/
04:16 cotto looks like the profiling runcore explodes on a rakudo hello world
04:20 dukeleto joined #parrot
04:23 dalek partcl: r675 | coke++ | trunk/runtime/builtin/read.pir:
04:23 dalek partcl: flesh out [read] a little;
04:23 dalek partcl: make [read stdin 0] work.
04:23 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=675
04:23 dalek partcl: r676 | coke++ | wiki/SpecTestStatus.wiki:
04:23 dalek partcl: Fixed one hang, another file gets further.
04:23 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=676
04:34 dalek parrot: r40944 | NotFound++ | trunk/src/pmc (2 files):
04:34 dalek parrot: [cage] c++ fixes
04:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40944/
04:51 mokurai joined #parrot
05:09 mikehh ha NotFound++ fixed that before I could - but some codetest fixes as well
05:11 dalek parrot: r40945 | mikehh++ | trunk/src (4 files):
05:11 dalek parrot: fix codetest failures - tabs in leading whitespace and Trailing space or tab char
05:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40945/
05:21 kyle_l5l joined #parrot
05:28 cotto How can I tell from C if I'm in an :init sub?
05:30 NotFound cotto: I hope we never need to know that
05:31 cotto I do.
05:31 dalek parrot: r40946 | NotFound++ | trunk/src/pmc (5 files):
05:31 dalek parrot: [cage] some remaining items from auto_attrs conversions
05:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40946/
05:31 cotto It makes the profiling runcore sad to be in an :init sub without knowing that it's there.
05:36 cotto Nobody likes a sad runcore.
05:37 NotFound And I suppose is even worse if that :init sub is run from another :init sub
05:39 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 cotto Hopefully it's just a flag imcc sets somewhere.
05:40 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:41 mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40945 - Ubuntu 9.04 amd64 (g++)
05:43 cotto I suspect Packfile_fixup_subs, but my knowledge of what I need to know starts to get shaky at this point.
05:44 cotto 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.
05:44 * Coke hopes NotFound++ can work more magic soon. =-)
05:45 NotFound cotto: And what about :immediate?
05:46 NotFound Coke: A parrot test?
05:46 purl i guess a parrot test is failing anyway ;-)
05:47 he__ joined #parrot
05:47 Coke NotFound: no, tcltest.tcl is now segfaulting.
05:47 Coke (same backtrace as another one of the reported segfaults)
05:47 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.
05:47 dalek partcl: r677 | coke++ | trunk/ (4 files):
05:47 dalek partcl: Add opt from the standard library, and let [package require opt] work.
05:47 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=677
05:47 dalek partcl: r678 | coke++ | wiki/SpecTestStatus.wiki:
05:47 dalek partcl: allowing load of [opt] consolidates our failure mode on 2 files.
05:47 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=678
05:48 NotFound cotto: uh... that may be a parrot bug
05:52 cotto It doesn't smell like one, but my nose is stuffy.
05:54 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?
05:54 cotto argv
05:55 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.
05:55 Coke "ops.num"
05:56 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.
05:56 pmichaud I'll put it in experimental for now.
05:57 Coke (I think that'll invalidate the bytecode).
05:57 Coke (and there may be a small chance you have to run renumber anyway. =-)
05:57 Coke sorry I'm not definitive.
05:57 NotFound Coke: make test doesn't segfault for me
05:57 pmichaud putting it in experimantal will invalidate the bytecode?
05:57 Coke NotFound: where?
05:57 Coke partcl?
05:57 purl i guess partcl is tcl on parrot or http://code.google.com/p/partcl
05:57 NotFound Coke: partcl
05:57 Coke Yes, it doesn't.
05:57 pmichaud actually, let's start with a larger question... eta to the context_pmc3 branch merge?
05:58 pmichaud because this is definitely impacted by that merge
05:58 Coke neither doesn 'make spectest', as I've skipped all the segfaulters.
05:58 Coke NotFound: http://code.google.com/p/p​artcl/wiki/SpecTestStatus //segfault
05:58 Coke those point to partcl issues which should point to parrot trac tickets.
05:58 Coke (or you can just look at the parrot tickets.)
05:58 Coke Danke!
05:59 NotFound Coke: but what is the new one you said a few lines ago?
06:00 Coke tcltest.tcl
06:00 purl tcltest.tcl is now segfaulting.
06:00 Coke similar backtrace for binary.test
06:00 Coke (both point to Trac #964
06:01 Coke the test was already not completing before. it's possible I missed it during the last round of cleanup/id.
06:02 NotFound Coke: The backtrace in #964 is from an --optimize build?
06:02 Coke NotFound: yes.
06:03 Coke I'm building with --optimize --ccflags=-g
06:03 NotFound Note that s=0 but the arg is not NULLOK
06:03 NotFound In Parrot_str_copy
06:08 cotto pmichaud, my impression is that bacek has the green light to merge as his earliest convenience.
06:09 Coke NotFound: added a simple PIR test case for you.
06:09 Coke (based on your clue, Thanks.)
06:10 NotFound Coke: thanks, I was about to try to write that
06:10 Coke (probably don't even need the say)
06:10 NotFound We need to add that code to the string pmc tests
06:11 NotFound Uhhh... Is a string, not a pmc :o
06:12 Coke right, but a string PMC clones its native string when cloning.
06:12 Coke s/clone/COWs/
06:13 NotFound I'm not sure, but I think we fixed that long time ago... I suspect someone re-broke it
06:14 moritz then you didn't commit enough tests :-)
06:14 Coke NotFound: there you go, added a PMC version to the ticket.
06:14 NotFound An attempt of quick fix makes t_tcl/binary.test coredump in a diffrerent way ;)
06:14 Coke NotFound: that's entirely possible.
06:15 Coke try tcltest.tcl instead; ISTR that one was not segfaulting previously.
06:15 NotFound Must go to dayjob, will work on that later
06:15 Coke (whereas binary is doing evil nasty things to strings in C)
06:15 Coke I imagine the quick fix would be to make a COW just set the new one to NULl too.
06:15 HG` joined #parrot
06:16 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.
06:16 Coke no>
06:16 Coke ?
06:17 Coke not that tcl probably ever clones a non-pmc string.
06:17 Coke anyhoo, thanks for any potential fixes.
06:18 dukeleto joined #parrot
06:21 jan joined #parrot
06:23 ttbot Parrot trunk/ r40935 i386-linux-thread-multi make error http://tt.ro.vutbr.cz/file/cmdout/78740.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
06:30 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:32 cotto we're allegedly working on that
06:38 cotto bacek_at_work, are you planning on merging context_pmc3 soon?
06:43 chromatic joined #parrot
06:49 dalek parrot: r40947 | NotFound++ | trunk/t/op/string.t:
06:49 dalek parrot: [t] add a TODO for clone null string
06:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40947/
07:04 chromatic duk3leto, my .gitconfig has (per your suggestion) an alias for 'git ci' of 'commit -a', which is probably what happened.
07:06 chromatic Perhaps it was Schwern's suggestion.  It was at OSBridge anyway.
07:15 pmichaud (merging context_pmc3) +1
07:18 * chromatic fixes TT #964 for the NULL STRING case.
07:21 donaldh joined #parrot
07:22 * pmichaud heads off to bed
07:24 bacek_at_work cotto: tonight. In next few hours.
07:25 cotto great!  bacek++
07:26 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 bacek_at_work (Mean no commits to trunk)
07:26 chromatic Give me a few moments; I have another commit to fix a segfault.
07:29 bacek_at_work chromatic: it will not happen in next couple of hours. I'm still @work
07:29 dalek parrot: r40948 | chromatic++ | trunk/t/op/string.t:
07:30 dalek parrot: [t] Fixed new null STRING clone test added in r40947, lest its passing appear
07:30 dalek parrot: marred with the weird error message of walking off the end of the current code
07:30 dalek parrot: segment.  Moral of the story: always add C<end> to PASM or just use PIR.
07:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40948/
07:30 dalek parrot: r40949 | chromatic++ | trunk (2 files):
07:30 dalek parrot: [ops] Fixed clone S, S op to create a new empty STRING when attempting to clone
07:30 dalek parrot: a NULL STRING.  We *need* a STRINGNULL.
07:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40949/
07:32 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 #parrot
07:33 dalek parrot: r40950 | chromatic++ | trunk (2 files):
07:33 dalek parrot: [PMC] Made String PMC's set_string_native() promote NULL STRINGs to empty
07:33 dalek parrot: STRINGs.  We need STRINGNULL.  See TT #964, which includes a test case for
07:33 dalek parrot: boxed NULL STRINGs.
07:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40950/
07:49 iblechbot joined #parrot
07:55 mberends joined #parrot
07:56 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:57 jimmy joined #parrot
08:02 fperrad mikehh, what is your problem with Lua ?
08:02 chromatic Let's let bacek merge the context_pmc branch first.
08:04 cotto of course.  I'm just thinking about after he's merged.
08:06 cognominal what is the auto_attrs flag in a pmc?
08:07 cotto It's a recent addition that means the struct for ATTRs will be automatically allocated and freed.
08:08 cognominal meaning no need to mark them?
08:08 cognominal nice
08:09 cotto They still need to be marked afaiu.
08:10 cognominal afaiu?
08:10 cognominal as far as I u(?)
08:10 cotto understand
08:11 cotto afaiu is as far as I understand
08:12 chromatic Crazy initialization thought: add an API to fetch the vtable for a type.
08:12 chromatic Use that in get_new_pmc_header.
08:13 chromatic (Use that also in class_init within PMCs)
08:13 chromatic The first time you fetch an uninitialized PMC's vtable, initialize it.
08:13 chromatic BOOM!
08:13 chromatic Lazily initialized PMCs.
08:13 chromatic Startup speed could drop by 35%.
08:17 cognominal nice
08:17 cognominal I hate the java startup time, nice if we do better
08:21 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?
08:23 chromatic (b)
08:23 chromatic I don't expect to report HLL annotations correctly yet.
08:23 chromatic I also don't expect to get really complex control flow right yet.
08:24 chromatic I think we'll need to find edge cases to turn into test cases.
08:24 cotto good
08:24 mikehh fperrad - it fails on make
08:27 fperrad mikehh, with Parrot trunk ?
08:27 mikehh fperrad: yes
08:28 cotto I'm out.  Happy merging.
08:28 dalek parrot: r40951 | cotto++ | branches/pluggable_runcore (2 files):
08:28 dalek parrot: [profiling] be smarter about checking that Parrot's argv iglobal is initialized before using it
08:28 dalek parrot: also, only print the "Wrote profile to ..." message once
08:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40951/
08:28 mikehh on Ubuntu 9.94 - both amd64 and i386
08:28 mikehh 9.04
08:30 mikehh I have just built r40950 - will try Lua and report the error
08:30 fperrad mikehh, Lua needs : make install-dev
08:30 mikehh fperrad: yes
08:32 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:34 fperrad bacek_at_work, an email with patch is fine
08:34 bacek_at_work fperrad: ok, deal
08:35 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:41 mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40950 - Ubuntu 9.04 amd64 (gcc)
08:57 mikehh rakudo (c9a9300) builds on parrot r40950 - make test / make spectest (up to r28175) PASS - Ubuntu 9.04 amd64 (gcc)
09:10 mikehh decnum-dynpmcs builds on parrot r40950 - make test PASS - Ubuntu 9.04 amd64 (gcc)
09:11 mikehh that's decnum-dynpmcs r181
09:16 fperrad mikehh, on Ubuntu 9.04 x86, I always configure Parrot with --prefix=/home/user/local and Lua builds fine.
09:16 fperrad Now without --prefix, I reproduce your problem
09:16 mikehh cardinal - builds on parrot r40950 - rake test:all same 3 failures - Ubuntu 9.04 amd64 (gcc)
09:16 mikehh fperrad; ok will try that
09:17 Whiteknight joined #parrot
09:18 mikehh I used -> perl Configure.pl --parrot-config=/usr/local/bin/parrot_config before
09:21 cognomore joined #parrot
09:31 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 HG` joined #parrot
09:35 fperrad mikehh, try this :
09:35 fperrad cd lua
09:35 fperrad mkdir dynext
09:35 fperrad cp src/pmc/*.so dynext/
09:35 fperrad make
09:41 mikehh fperrad: ok that builds - now it can't find Parrot/Test.pm
09:42 mikehh partcl r678 builds on parrot r40950 - make test PASS
09:49 mikehh fperrad - it's there in /usr/local/lib/parrot/1.5.0-d​evel/tools/lib/Parrot/Test.pm
09:51 payload joined #parrot
09:52 bacek joined #parrot
09:56 payload joined #parrot
09:59 bacek o hai
10:00 bacek mikehh: around?
10:09 Topic for #parrotis now  Please don't commit in trunk in next half an hour. context_pmc3 branch merging | HTTPS CERT EXPIRED | http://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
10:10 bacek mikehh: can you boot to amd64? I want final test of context_pmc3 after merging from trunk.
10:10 bacek Commit is coming in next few minutes, so no hurry
10:11 mikehh I am there - Ubuntu 9.04 amd64
10:12 bacek mikehh: ok.
10:14 bacek Anyone on here not on Linux?
10:15 bacek mikehh: ok, dcommiting now.
10:18 bacek r40952
10:18 bacek make test passed on linux/i386
10:18 * bacek reviewing diff to trunk
10:21 dalek parrot: r40952 | bacek++ | branches/context_pmc3 (75 files):
10:21 dalek parrot: Last merge from trunk before mergin back.
10:21 dalek parrot: Conflicts:
10:21 dalek parrot: MANIFEST
10:21 purl i think MANIFEST is used for a ton of things, yes.
10:21 dalek parrot: docs/pdds/pdd17_pmc.pod
10:21 dalek parrot: include/parrot/pmc.h
10:21 dalek parrot: src/gc/api.c
10:21 dalek parrot: src/ops/set.ops
10:21 dalek parrot: src/pmc.c
10:21 dalek parrot: src/pmc/eventhandler.pmc
10:21 dalek parrot: src/pmc/exception.pmc
10:21 dalek parrot: src/pmc/nci.pmc
10:21 dalek parrot: src/pmc/sub.pmc
10:21 dalek parrot: t/op/gc.t
10:21 purl it has been said that t/op/gc.t is going to cause problems because I dont think I faithfully reproduce the interface
10:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40952/
10:33 mikehh bacek: g++ build fails on src/pmc.c
10:34 mikehh bacek: gcc build ok make test PASS
10:34 bacek mikehh: ok. nopaste output of g++. I'll check it
10:36 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:37 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:
10:37 mikehh src/pmc.c
10:37 mikehh ./include/parrot/pmc.h: In function ‘void Parrot_pmc_destroy(parrot_interp_t*, PMC*)’:
10:37 mikehh ./include/parrot/pmc.h:56: error: previous declaration of ‘void Parrot_pmc_destroy(parrot_interp_t*, PMC*)’ with ‘C++’ linkage
10:37 mikehh src/pmc.c:108: error: conflicts with new declaration with ‘C’ linkage
10:37 mikehh make: *** [src/pmc.o] Error 1
10:44 mikehh bacek: svn properties need setting on t/pmc/integer-old.t and tools/dev/parrot_shell.pl
10:45 mikehh 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 :)
10:45 mikehh bacek: I'll do that
10:46 bacek mikehh: ok, thanks
10:50 masak joined #parrot
10:51 dalek rakudo: 2f22b87 | moritz++ | src/setting/Any-num.pm:
10:51 dalek rakudo: use Nums instead of Rats in !to-radians
10:51 dalek rakudo: This fixes sin(Rat). Test in t/spec/S32-num/rat.t
10:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​f22b873737bd960322305f5283d1b3f63705aa7
10:55 dalek parrot: r40953 | mikehh++ | branches/context_pmc3 (2 files):
10:55 dalek parrot: set svn properties on t/pmc/integer-old.t and tools/dev/parrot_shell.pl
10:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40953/
10:58 dalek parrot: r40954 | bacek++ | branches/context_pmc3/src/extend.c:
10:58 dalek parrot: [cage] Replace few interp->ctx with CURRENT_CONTEXT macro for simplify grepping in future.
10:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40954/
10:58 dalek parrot: r40955 | bacek++ | branches/context_pmc3/src/runcore/cores.c:
10:58 dalek parrot: Remove check of 'pc' in fastcore. Put TOD mark instead
10:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40955/
10:59 quek joined #parrot
11:00 dalek lua: 4093f18 | fperrad++ |  (2 files):
11:00 dalek lua: fix build with default --prefix
11:00 dalek lua: Thanks to mikehh
11:00 dalek lua: review: http://github.com/fperrad/lua/commit/40​93f18041dfc9839cbd18eeeb713f5b7614c532
11:00 dalek lua: 9ed409a | fperrad++ | config/makefiles/pmc.in:
11:00 dalek lua: install PMC in languages/lua/dynext
11:00 dalek lua: review: http://github.com/fperrad/lua/commit/9e​d409ac2304f5f2fa663658b61b65cd42a5ce81
11:00 dalek lua: e1bcbe4 | fperrad++ | .gitignore:
11:00 dalek lua: fix .gitignore
11:00 dalek lua: review: http://github.com/fperrad/lua/commit/e1​bcbe47d48d7e7106d238f46279a10677e7527f
11:00 bacek mikehh: ok. Time to retest. I'll check parrot_debugger now
11:02 dalek parrot: r40956 | bacek++ | branches/context_pmc3/include/parrot/pmc.h:
11:02 dalek parrot: Restore lost PARROT_EXPORT on Parrot_pmc_destroy.
11:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40956/
11:02 dalek parrot: r40957 | bacek++ | branches/context_pmc3/lib/Parrot/OpTrans/CGoto.pm:
11:02 dalek parrot: [cage] Drop useless #include "parrot/interpeter.h"
11:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40957/
11:04 bacek mikehh: erm... I can't reproduce parrot_debugger failure...
11:07 mikehh bacek: I'll nopaste it in a bit
11:08 bacek mikehh: ok
11:08 mikehh bacek: fulltest PASSes at r40953
11:08 bacek mikehh++ #Hooray!
11:08 * bacek rebuilding rakudo.
11:14 nopaste "mikehh" at 94.3.240.143 pasted "prove -v t/tools/parrot_debugger.t in context_pmc3 branch" (128 lines) at http://nopaste.snit.ch/17794
11:17 mikehh bacek: the backtrace comes from test 41 - print string registers when none exist - it does not happen in trunk
11:18 mikehh the backtrace I mean
11:18 bacek mikehh: hmm... I'll try to fix it.
11:18 mikehh it did but got fixed
11:19 mikehh I think it was dukeleto
11:19 bacek mikehh: do you remember revision?
11:20 mikehh I'll see if I can find it
11:21 bacek mikehh: ok.
11:21 bacek rakudo's make test passed on my box.
11:23 donaldh joined #parrot
11:25 bacek fperrad: ping
11:25 fperrad bacek, pong
11:26 bacek fperrad: how I can test lua? It builds, but complains about Test::More
11:27 nopaste "bacek" at 122.110.41.34 pasted "Lua patch for fperrad++" (30 lines) at http://nopaste.snit.ch/17795
11:27 bacek fperrad: with nopasted patch.
11:30 fperrad bacek, 'make test' uses files in build tree with relative path
11:30 fperrad remember when all languages were in languages/ subdir
11:30 bacek so I just have to move it into languages and rebuild?
11:31 bacek partct make test passed
11:32 bacek fperrad: some conflicts with installed parrot...
11:33 bacek fperrad: nm. softlink problem
11:33 fperrad bacek, no conflict, just never migrated
11:33 kid51 joined #parrot
11:34 bacek fperrad: there is couple of warning about casting FLOATVAL to long int. Ignore them?
11:35 fperrad bacek, yes
11:37 szabgab joined #parrot
11:39 bacek fperrad: do you use custom Exceptions in lua (inherited from Exception PMC)?
11:40 whiteknight joined #parrot
11:42 whiteknight bacek: how goes it?
11:43 bacek parrot fulltest, rakudo test, partcl test passed.
11:43 fperrad bacek, no, just common die $S0
11:43 bacek Checking lua atm
11:43 bacek fperrad: thanks
11:46 bacek fperrad: lua's make test should pass on trunk?
11:48 fperrad bacek, no ~150 errors, see http://smolder.plusthree.com/app/​public_projects/smoke_reports/12
11:49 dalek tracwiki: v8 | whiteknight++ | JITRewrite
11:49 dalek tracwiki: +some info about LLVM from the website.
11:49 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​JITRewrite?version=8&amp;action=diff
11:49 dalek tracwiki: v9 | whiteknight++ | JITRewrite
11:49 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​JITRewrite?version=9&amp;action=diff
11:50 bacek fperrad: Hooray! I didn't broke it.
11:50 whiteknight LLVM?
11:50 purl hmmm... LLVM is a big huge thing with not much docs, but it works or low-level virtual machine or at http://www.llvm.org
11:50 bacek fperrad: thanks! (But we definitely need more tests in parrot...)
11:51 whiteknight who was supposed to be doing that for GSoC, Tewk?
11:51 bacek ok.
11:51 bacek LAST CALL.
11:51 whiteknight bacek: DO IT!
11:57 * bacek hides
11:57 bacek r40958
11:57 whiteknight EVERYBODY PANIC!
11:57 purl i guess everybody panic is http://web.archive.org/web/20070216080911/​http://www.autofrog.com/~chrisp/panic.gif
11:57 Topic for #parrotis now  HTTPS CERT EXPIRED | http://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:58 dalek parrot: r40958 | bacek++ | trunk (77 files):
11:58 dalek parrot: Merge context_pmc3 branch into trunk.
11:58 dalek parrot: DRAGONS ENTER THE BUILDING.
11:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40958/
12:00 bacek purl++ # YAY!
12:01 whiteknight bacek++
12:01 bacek fperrad: I've attached my patch for Lua into mailing list message. Same as in nopaste
12:02 moritz any paptches for rakudo necessary?
12:02 whiteknight yes, he attached it to his last email
12:03 whiteknight doesn't look too bad though
12:03 bacek moritz: attached to same message as well
12:03 moritz ok
12:04 bacek Hmm... It took longer than I expected... 1.5 hours instead of 0.5
12:04 * bacek getting old
12:04 purl it has been said that getting old is tough but it beats the alternative
12:04 whiteknight lots of cleanups and refactors to do still, but this was an excellent first step
12:04 bacek botsnack
12:04 purl :)
12:05 Zak joined #parrot
12:06 whiteknight that is a gigantic freaking diff
12:06 bacek ~8k lines
12:06 bacek 7.5
12:07 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.
12:08 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 #parrot
12:08 bacek Who is release manager of 1.6?
12:09 jonathan particle, iirc
12:09 whiteknight yes, particle
12:09 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
12:09 dalek TT #970 created by bacek++: [todo] Remove Parrot_Context structure in favor of ATTRibutes in Context ...
12:11 whiteknight bacek: so you created the PMC as a wrapper around Parrot_Context, and you created a proper API?
12:11 bacek fsvo "proper"
12:11 whiteknight so the next step is TT #970 to kill the struct and just use ATTRs?
12:12 dalek TT #971 created by bacek++: [todo] Add "current" versions of Parrot_pcc_get_foo and Parrot_pcc_set_foo ...
12:13 bacek whiteknight: there is more steps than one :) But ATTRs is obviously first
12:15 whiteknight yes, many steps
12:16 rbaumer joined #parrot
12:16 dalek TT #972 created by bacek++: [todo] Remove "old" context related function such as "parrot_gc_context"
12:18 whiteknight testing trunk on win32 now
12:18 whiteknight (I haven't done this in a long time)
12:18 whiteknight I need to look at win64 too, before the release
12:21 whiteknight It amazes me how much slower "make -j3 coretest TEST_JOBS=3" runs on win32 then on linux32
12:22 dalek parrot: r40959 | mikehh++ | trunk (4 files):
12:22 dalek parrot: fix svn properties
12:22 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40959/
12:22 moritz whiteknight: uhm, does it even start 3 parallel jobs on windows?
12:22 whiteknight it starts at least two
12:23 moritz also for the tests?
12:23 whiteknight yes sir
12:23 dalek TT #973 created by bacek++: [todo][rfc] Review content of src/gc/alloc_register.c and ...
12:23 whiteknight I'm using the mingw32-make that comes with strawberry, not stupid nmake
12:25 bacek ok, I've dumped next steps for Context cleanups as trac tickets. EVERYONE JOIN THE PARTY!
12:26 dalek TT #974 created by bacek++: [todo] Mark publicly exposed functions in src/call/context.c with ...
12:26 whiteknight excellent work bacek!
12:26 jonathan bacek++
12:28 * bacek "JFDI" robot :)
12:29 Coke msg jdv79 awesome
12:29 purl Message for jdv79 stored.
12:29 Coke msg jdv79 (if you're adding to smolder, I guess I can't drop TAP support in make test just  yet. =-)
12:29 purl Message for jdv79 stored.
12:29 * jonathan afk for a while
12:31 * Coke fears to update partcl's parrot.
12:31 whiteknight Coke: The old one wasn't doing you any favors
12:31 moritz bacek: rakudo with latest parrot + your patch fails a few tests
12:31 moritz t/spec/S06-advanced_subroutine_features/wrap.rakudo ............ Failed 57/60 subtests
12:31 moritz t/spec/S06-multi/lexical-multis.t .............................. Failed 12/14 subtests
12:31 bacek Coke: Files=74, Tests=1378, 390 wallclock secs ( 0.66 usr  0.12 sys + 346.42 cusr  4.87 csys = 352.07 CPU)
12:31 bacek Result: PASS
12:32 bacek moritz: looking
12:32 Coke bacek;awesome. now I just need torun spec test to be sure. =-)
12:33 Coke ./src/pmc/sub.pmc: In function 'Parrot_Sub_nci___get_regs_used':
12:33 Coke ./src/pmc/sub.pmc:901: warning: logical '&&' with non-zero constant will always evaluate as true
12:34 moritz t/spec/S12-class/interface-consistency.rakudo .................. Failed 2/8 subtests
12:37 whiteknight_ joined #parrot
12:37 ruoso joined #parrot
12:37 wknight8111 joined #parrot
12:38 wknight8111 I call #973
12:39 bacek wknight8111: and naming is slightly inconsistent too
12:39 bacek but "register" functions shouldn't be exposed anyway
12:40 wknight8111 the whole alloc_register.c file needs to disappear
12:40 bacek wknight8111: +1
12:40 purl 1
12:41 whiteknight I would like to add VTABLE_get_*_keyed_int to access registers
12:42 bacek looks about all right
12:44 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.
12:46 bacek moritz: hmm... t/spec/S06-advanced_subroutine_features/wrap.rakudo passed on my box.
12:47 bacek moritz: and "lexical-multis.t" too
12:48 bacek moritz: "interface-consistency" failing todoed test.
12:48 mikehh got to take a break for a bit - bbiab
12:48 moritz bacek: I created tt #975 with a more extensive summary
12:48 bacek moritz: ok, thanks.
12:48 moritz bacek: I'm on amd64 here
12:49 bacek moritz: ah, ok.
12:50 dalek partcl: r679 | coke++ | wiki/SpecTestStatus.wiki:
12:50 dalek partcl: Resolve Issue #101
12:50 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=679
12:50 dalek TT #975 created by moritz++: Failed Rakudo tests due to context_pmc3 merge
12:51 bacek moritz: ouch. Looks like segfaults on amd64.
12:54 moritz bacek: I'm now trying again, this time deleting parrot's install location first
12:54 moritz if the problem persists, I can try to give you backtraces
12:55 * bacek wonder why most of his refactors causing major failures in unexpected places...
12:57 bacek moritz: it will be helpful.
12:59 Topic for #parrotis now  HTTPS CERT EXPIRED | http://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 Topic for #parrotis now  HTTPS CERT EXPIRED | http://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
12:59 moritz bacek: after deleting parrot_install/ everything looks clean again
13:00 moritz bacek: I'm running a full spectest again, so expect results in 30 minutes :-)
13:01 bacek moritz: I will not survive for 30 minutes :) I had 5 meetings today at $dayjob...
13:02 bacek And they almost killing me...
13:03 sri_ joined #parrot
13:03 moritz contrary to common believe, meetings and not premature optimization is the root of all evil
13:04 bacek moritz: +1 :)
13:08 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."
13:10 particle whiteknight: thanks for taking responsibility for these merges
13:13 whiteknight it's the open source way. If you want something done, do it
13:14 * bacek looking in context_pmc3 branch and checking discussions about converting contexts to PMC for last couple of year
13:16 NotFound Looks like 1.5 - 1.6 will put very high the mark of changes between releases.
13:17 particle great work, bacek.  hopefully you folks will be able to squash any remaining bugs quickly and without much pain.
13:18 bacek particle: I hope so. This branch was little bit more painful than I expected...
13:19 particle you have been doing a fair amount of exploratory surgery here, i see
13:20 particle i'm interested in seeing coverity scan results on parrot
13:20 particle we've made major changes to the core this month
13:27 * bacek start thinking about implementing Generational GC (or plug existing one) for Parrot.
13:28 Zak joined #parrot
13:31 bacek ok. $bed time.
13:32 bacek 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:33 Coke (litany) wow, that's pretty close to the original... not that I memorized it or anything.
13:38 whiteknight bacek: how do I apply that rakudo_ctx.diff patch to rakudo?
13:38 moritz whiteknight: 'git apply rakudo_ctx.diff'
13:39 moritz whiteknight: then 'echo 40958 > build/PARROT_REVISION'
13:39 whiteknight thanks moritz++
13:43 szabgab joined #parrot
13:46 dalek rakudo: 1cb71e4 | moritz++ | src/setting/Any-num.pm:
13:46 dalek rakudo: fix typo found by Jimmy++, moritz--
13:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​cb71e4273746dc8e09133abf3f801eafdfd938c
13:50 dalek 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.
13:51 NotFound Why the empty string is the desired result of cloning or boxing a null string? They are different things.
13:52 Coke good question.
13:52 purl Yeah, it is. I'm stumped.
14:00 pmichaud initial spectest shows about a 20% speed loss after context_pmc3 branch merge
14:00 pmichaud I'll do a more precise set of runs to get a better estimate
14:04 jdv79 Coke: you wanna add the smoldering code to partcl or you want me to?
14:05 jdv79 dropping TAP (just got your message)... could be a problem.
14:06 jdv79 what other format would it be?  could we write an adapter?
14:09 Coke jdv79: it'd be in tcl-native testing format.
14:10 Coke try "make t_tcl; ./tclsh t_tcl/if.test"
14:10 Coke but that's not for ages.
14:10 jdv79 is there a name i can google for a spec or something?
14:11 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
14:11 jrtayloriv Has anyone else already reported segfaults in t/tools/parrot_debugger.t?
14:12 Coke jdv79: I don't think there's a spec.
14:12 jdv79 ok
14:12 jdv79 i'll peek at it then
14:12 jdv79 for now i guess it'll work cause its TAP
14:13 nopaste "jrtayloriv" at 96.238.199.12 pasted "Segfaults in t/tools/parrot_debugger.t" (89 lines) at http://nopaste.snit.ch/17796
14:13 NotFound jrtayloriv: I also have that, but is a TODOed test, so it pass
14:14 jrtayloriv NotFound, I was wondering why the test was passing for me. OK -- thanks
14:15 Psyche^ joined #parrot
14:16 MoC joined #parrot
14:19 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 #parrot
14:26 Coke does bacek's mergeback potentially reduce memory usage?
14:26 Coke (by stopping context leaks?)
14:28 jonathan In theory, I'd expect so.
14:28 Coke k. i'll try my one memory hog that >almost< passed before.
14:31 Coke https://trac.parrot.org/parrot/ticket/732 might be closable, then.
14:32 theory joined #parrot
14:34 he__ src/jit/ppc/core.jit:1299: error: 'Parrot_Context' has no member named 'state'
14:34 he__ (with -current source just updated, building on NetBSD/macppc 5.0)
14:36 whiteknight we shouldn't have jit support on ppc
14:36 whiteknight at least, not that I was aware of
14:36 he__ parrot has had that for a considerable time.
14:37 NotFound Why the frac some configure probes "Does your platform support..." says "done" instead of yes or no?
14:39 Coke NotFound: all handrolled.
14:39 Coke probably simple enough to fix.
14:40 NotFound Coke: With the left hand by a dexter? ;)
14:41 he__ whiteknight: smoke test on NetBSD/macppc 5.0 with jit completed OK last on Aug 7 2009, rev. 39951.
14:43 he__ (yes, I crank my tests manually)
14:46 NotFound parrot_debugger segfault is at Context.destroy
14:50 Coke jdv79: sadly, expr.test still memory panics.
14:50 sri_ joined #parrot
14:50 Coke error:imcc:syntax error, unexpected DOT ('.') in file 'EVAL_131362' line 71
14:50 Coke (that's a lot of eval, yo.)
14:51 mikehh jtayloriv: We had the problem before - I am not sure it is from a TODE test - I think it is test 41 - see  http://nopaste.snit.ch/17794
14:51 mikehh TODO
14:53 mikehh 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 lua: a58a573 | fperrad++ |  (2 files):
14:53 dalek lua: fix build after https://trac.parrot.org/parrot/changeset/40958
14:53 dalek lua: Courtesy of bacek++
14:53 dalek lua: review: http://github.com/fperrad/lua/commit/a5​8a57317830d669580c741f9f1917b5b0ae5e76
14:53 dalek lua: 1ab8538 | fperrad++ | src/pmc/luathread.pmc:
14:53 Coke the double free usually happens at process exit time.
14:53 dalek lua: Parrot_Context is gone
14:53 dalek lua: review: http://github.com/fperrad/lua/commit/1a​b8538c4ec73281ab04f6697ab544425bfed315
14:53 Coke the todo test is probably a red herring.
14:55 dalek partcl: r680 | coke++ | trunk/config/PARROT_VERSION:
14:55 dalek partcl: This revision has some segfault fixes.
14:55 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=680
14:55 quek joined #parrot
14:56 mikehh Coke: I just built and tested r679 - it PASSes - I'll try at the new revision
14:58 mikehh partcl r679 builds on parrot r40959 - make test PASS - Ubuntu 9.04 amd64 (g++)
14:59 Coke mikehh: all 680 does is bump the minimum required parrot version to 40959
14:59 Coke ... so you don't have to test that revision, since you already did that.
15:01 mikehh Coke: I am running make spectest at the moment
15:02 Coke danke.
15:03 iblechbot joined #parrot
15:07 sri joined #parrot
15:12 he__ Hmm, simply removing the offending line made "make test" pass.
15:21 donaldh joined #parrot
15:24 Coke our jesse hit boing boing.
15:24 Coke http://gadgets.boingboing.net/200​9/09/02/photo-and-descriptio.html
15:30 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
15:31 pmichaud not bad
15:36 dukeleto joined #parrot
15:42 Coke gah, SLOWER?
15:43 mikehh cardinal - builds on parrot r40959 - rake test:all - same 3 failures - Ubuntu 9.04 amd64 (g++)
15:48 mikehh decnum-dynpmcs r181 builds on parrot r40959 - make test PASS - Ubuntu 9.04 amd64 (g++)
15:50 GeJ_ joined #parrot
15:52 whiteknight I can't build Rakudo
15:53 whiteknight ah nevermind, I have the wrong parrot version somehow
15:56 whiteknight 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:57 * whiteknight hopes
16:01 Coke (1.8 * 1.13)
16:01 purl 2.034
16:01 Coke (rought guess at how many hours it'll now take to run 'make spectest' for tcl.)
16:05 marius joined #parrot
16:07 kjeldahl_ joined #parrot
16:09 theory joined #parrot
16:10 HG` joined #parrot
16:12 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 #parrot
16:21 Coke whiteknight: I swear sometimes you're just trying to depress me.
16:22 szabgab joined #parrot
16:22 whiteknight Coke: I would never! I want you to be happy
16:25 mikehh partcl make spectest has been running for about 90 minutes so far - still on string
16:26 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
16:26 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.
16:26 jrtayloriv interp->iglobals, that is
16:28 particle jrtayloriv: in pir or c?
16:28 jrtayloriv particle, c
16:29 whiteknight jrtayloriv: check out the logic behind the interpinfo opcode
16:30 whiteknight whatever functions it calls do what you need
16:30 jrtayloriv whiteknight, ok -- thank you.
16:30 particle yeah, i was hoping to provid emore info, but i haven't made ctags-vi in a while
16:30 particle *provide
16:31 particle did pluggable_runcore merge?
16:31 whiteknight no
16:31 whiteknight at least, not that I know of
16:31 particle damn, that's another potential merge this month
16:32 particle i'd like to see it happen, but time is getting short
16:32 darbelo joined #parrot
16:33 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?
16:33 Coke the "day or two to sort out a merge" is kind of silly when we can test each merge in order, no?
16:33 Coke s/silly/unneeded/
16:33 Coke he__: which core is running when the test fails?
16:33 whiteknight it is pretty impressive the amount of work we can do in a month
16:33 particle coke: there are auto-smokers out there that may miss some revisions
16:34 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 :)
16:34 Coke particle: happy path: the combined merges work.
16:34 Coke sad path: we can back up and test teh individual revisions.
16:34 whiteknight I have plenty of other work to do. I just choose not to do it :)
16:35 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
16:35 Coke particle: sure.
16:35 particle whiteknight: yes, you're one of the slackers i'm talking about
16:35 Coke why should we pad that with 2 days?
16:36 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
16:36 whiteknight we want all the time we can get to smooth things out
16:37 skeeterbug joined #parrot
16:37 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'.
16:37 particle leo++
16:37 Coke er, fulltest
16:37 he__ Coke: that's what I did...
16:38 Coke ok. in there it'll say it was running 'testj' or something.
16:38 Coke if you nopaste it, I can show you.
16:38 Coke whiteknight: but we have /version control/
16:38 he__ The invocation of the pass where it failed was "perl t/harness --gc-debug --running-make-test -j --runcore-tests"
16:39 Coke he__: ok; use those options, and add the name of the test on the end.
16:39 Coke he__: (you might need to/be able to remove runcore tests and running make test)
16:39 Coke he__: (but keep gc-debug and -j)
16:40 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.
16:40 Coke jrtayloriv: that's in the config.
16:40 Coke look at:
16:40 MoC joined #parrot
16:40 whiteknight I'm sorry, I swore that was in interpinfo somewhere
16:41 Coke http://code.google.com/p/partcl/sourc​e/browse/trunk/runtime/tcllib.pir#135
16:41 particle i'm wondering, do we generate a c header with parrot config info?
16:41 jrtayloriv whiteknight, no prob
16:41 jrtayloriv Coke, thanks
16:42 Coke jrtayloriv: np
16:42 particle we generate pir/pasm, and pm files, but .h?
16:43 Coke particle: if you can get it from PIR, you can get it from C, no?
16:43 Coke whiteknight: technically, the config info lives in the interp. =-)
16:43 particle if you call a pir op from c, i guess
16:43 Coke config = interp[.IGLOBALS_CONFIG_HASH]
16:44 Coke (whoops - look at line 124, jrtayloriv )
16:44 jrtayloriv Coke, right, I saw it -- thanks again.
16:46 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:52 dalek rakudo: c6bf7b8 | moritz++ |  (3 files):
16:52 dalek rakudo: make Rakudo build on parrot after context_pmc3 branch merge
16:52 dalek rakudo: Patch courtesy by bacek++
16:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​6bf7b8ec867f49907cc1945098db999b02b9d0f
16:53 mikehh partcl make spectest (took 1 hour 45 minutes + a few seconds) no segfaults - log file = 1040114
16:56 Coke mikehh++ - did all files have a "Passed" line near the end?
16:56 Coke (how are you running the tests, 'make spectest' ?)
16:56 Coke (if you use 'make specinfo', it does the same thing, but also captures output into docs/)
16:58 mikehh Coke: make spectest 2>&1 | tee spectest.679.40979.log
16:58 mikehh Coke: I try that next time
16:59 mikehh Coke either that or skipped
16:59 Coke then you can do an svn diff to see if there were any regressions.
16:59 Coke mikehh++
17:00 Coke (I'd be happy to give you commit bits to update the spec test results. =-)
17:01 mikehh I don't think I'll be running it every test run - maybe a couple of times a week
17:02 Andy joined #parrot
17:05 fperrad_ joined #parrot
17:06 dalek parrot: r40960 | fperrad++ | trunk/tools/dev (2 files):
17:06 dalek parrot: [languages] install dynops & dynpmc in languages/lang/dynext
17:06 dalek parrot: (see PDD30)
17:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40960/
17:12 mokurai joined #parrot
17:20 iblechbot joined #parrot
17:27 dalek partcl: r681 | coke++ | trunk/docs/spectest- (2 files):
17:27 dalek partcl: Update spectest status , notably:
17:27 dalek partcl: - completing 2 more test files
17:28 dalek partcl: - new record passing tests, up 37.
17:28 dalek partcl: - run against a parrot post context mergeback.
17:28 dalek partcl: - this run took 31% longer than the last run. (!!)
17:28 dalek partcl:   (partially due to the 2 new test files)
17:28 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=681
17:30 joeri joined #parrot
17:32 duk3leto 'ello
17:33 cotto joined #parrot
17:35 Coke I eagerly await our new profiling overlords.
17:37 cotto ohai
17:46 Coke cotto: any blockers on mergeback?
17:47 Coke 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 Coke cotto: do you keep the pprof output in memory before dumping it, or somewhere in /tmp?
17:47 Coke ah, there it is.
17:49 cotto it's currently written to a file as it's collected.
17:50 nopaste "coke" at 72.228.52.192 pasted "cotto: memory pig." (22 lines) at http://nopaste.snit.ch/17797
17:50 Coke (that runs to completion on trunk.)
17:51 Coke cotto: "profile will usually be named parrot.pprof.XXXX" - XXXs in teh wrong spot?
17:51 Coke also, how did you get the parrot PID?
17:51 cotto nope.  I recently changed it.
17:51 cotto getpid()
17:51 Coke ah. that's not exposed to PIR, is it.
17:52 Coke (nope)
17:53 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.
17:56 Coke is getpid c89?
17:59 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 jrtayloriv Coke, my man pages aren't showing it as c89, anyway.
17:59 darbelo Coke: http://www.opengroup.org/onlinepub​s/009695399/functions/getpid.html
18:00 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.
18:01 cotto Yup.  They just spell it with a leading underscore.
18:02 chromatic joined #parrot
18:02 whiteknight getpid is not c89
18:02 cotto Hmmm.  src/gc/malloc_trace.c uses it without the leading underscore.
18:03 whiteknight that file should be deleted
18:03 skeeterbug left #parrot
18:03 cotto It exists, it's just deprecated.  A #define should suffice.
18:17 dalek parrot: r40961 | cotto++ | branches/pluggable_runcore/src/runcore/cores.c:
18:17 dalek parrot: [profiling] #define getpid to _getpid on windows and get rid of some macros that are taken care of by hints
18:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40961/
18:24 Coke from pir, if I do a dlfunc, that define isn't going to help, yes?
18:25 cotto correct; it won't
18:36 rbaumer joined #parrot
18:39 silug joined #parrot
18:41 jan joined #parrot
18:59 theory joined #parrot
19:14 darbelo Ayone familar with the unmanagedstruct PMC: ping
19:15 NotFound whiteknight: looks like #define GC_USE_FIXED_SIZE_ALLOCATOR 1 is working now
19:16 whiteknight really? on all platforms?
19:16 whiteknight I remember it had the most problems on win32
19:16 NotFound amd64
19:16 darbelo Where do I #define that to test it?
19:16 whiteknight should be in include/parrot/gc_api.h I think
19:16 NotFound darbelo: include/parrot/gc_api.h
19:17 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
19:17 whiteknight okay, that's a good sign
19:18 darbelo ok, running make test on OpenBSD amd64
19:19 whiteknight I'm testing on win32 now
19:20 donaldh joined #parrot
19:23 whiteknight doesn't build on win32 with the flag
19:30 whiteknight no idea why either, it doesn't spit out any error messages
19:30 whiteknight make just stops at miniparrot
19:34 NotFound Building now in linux 32
19:36 whiteknight If we can get it working on win32, that should be it
19:36 whiteknight I know it works elsewhere
19:37 whiteknight Or, I'm reasonably sure about it
19:37 NotFound There is some difference in the code for windows?
19:37 darbelo whiteknight: make test is chugging along fine in OpenBSD.
19:38 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 whiteknight It just doesn't wok
19:38 whiteknight work
19:44 whiteknight 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 ;)
19:49 jrtayloriv whiteknight, looks like gdb is available for windows
19:49 whiteknight yeah, I'll have to look at that later
19:51 whiteknight because I hate printf debugging
19:55 whiteknight it's only good to tell you where a problem is happening, not what causes it
20:03 rbaumer joined #parrot
20:03 MikHel joined #parrot
20:09 whiteknight okay,the problem appears to be happening somewhere in Parrot_gc_get_attribute_pool
20:12 whiteknight 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:17 NotFound What is GC_ATTRIB_POOLS_HEADROOM ?
20:17 whiteknight got it!
20:17 whiteknight it's like a buffer, so we allocate space for more pools then we need
20:17 whiteknight the goal is to try to reduce the number of resizes for the pool
20:17 whiteknight I think it's value is 8
20:18 bacek joined #parrot
20:18 bacek Good morning
20:18 purl And good moroning to you, bacek.
20:19 whiteknight hello bacek
20:19 bacek whiteknight: hi.
20:19 bacek How many complains after merge?
20:19 whiteknight I think I have my fixed-size gc problem solved
20:19 whiteknight yes, apparently PPC has JIT, and it's broken
20:20 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
20:21 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
20:21 chromatic I fixed that up on the context branch before it merged, but I didn't fire up the PPC box to test.
20:21 whiteknight although I probably have a book about it somewhere
20:23 NotFound whiteknight: Do you have a patch?
20:24 moritz opbots: trust whiteknight
20:24 slavorg But I already trust whiteknight
20:24 slavorgn But I already trust whiteknight
20:26 dalek parrot: r40962 | whiteknight++ | trunk (2 files):
20:26 dalek parrot: 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 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40962/
20:26 whiteknight NotFound: better, and more reckless! committed in r40962
20:26 NotFound Ah, good :)
20:28 whiteknight I'm testing on TEH LUNIX now
20:28 Coke opbots, names
20:28 Coke (that's how you get them to re-trust)
20:28 Coke bacek: full spect test on partcl had no (major?) regressions.
20:29 Coke (we dropped one test in one file, but that was probably me.)
20:29 whiteknight ...and tests pass on Linux64
20:29 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
20:29 Coke NotFound: the segfault you found in binary after clone null string fix is already reported in trac for another test file.
20:30 Coke in binary.test for partl.
20:30 Coke (partcl) (AIGH)
20:30 chromatic I fixed a couple of those last night.
20:30 NotFound Coke: I'm having a mix of segfaults in my head and no longer know what is what %-)
20:31 bacek NotFound: I hope dukeleto can fix it
20:31 bacek Coke: good!
20:31 whiteknight and with that, gentlemen, I'm leaving.
20:31 NotFound chromatic: I'm not sure that an empty string is a good clone of a null string
20:32 chromatic I'm not either, but what are the other options?
20:32 whiteknight STRINGNULL
20:32 NotFound A null styring
20:32 chromatic We should have a STRINGNULL.  That'd solve so many problems.
20:32 pmichaud Null String exception
20:32 pmichaud what happens if we clone a Null PMC ?
20:32 whiteknight #define STRINGNULL 0x01
20:32 whiteknight #define STRINGNULL (STRING *)0x01
20:33 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
20:33 chromatic Null object pattern.
20:33 whiteknight that's fine too. Whatevs
20:33 NotFound What will be the benefit? As long as string don't have a function table, I don't see any.
20:33 particle i got so damned much pushback years ago when i tried to add STRINGNULL
20:33 whiteknight and now you are getting a pushforward!
20:34 chromatic How do you tell a NULL pointer (probably an accident) from a NULL STRING (possibly on purpose)?
20:34 whiteknight later
20:34 particle chromatic: by the length of its tail.
20:35 chromatic This all smells like a semi-predicate problem to me.
20:35 chromatic If we continue to treat NULL and NULLSTRING as equivalent, our function annotations in C won't help us find real bugs.
20:36 particle please create STRINGNULL.
20:37 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.
20:37 chromatic If we have STRINGNULL, we can initialize STRING registers to it directly, same as we do PMC registers to PMCNULL.
20:38 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
20:38 NotFound autoattrs just allocate space and zero fills right now
20:39 particle right, but it can be made smarter, to fill with PMCNULL or STRINGNULL as appropriate
20:40 chromatic That's definitely a benefit of autoattrs.
20:41 NotFound Not a bad idea, it may allow to delete several init
20:43 chromatic Hopefully!
20:43 Coke Or, we could re-examine the proposal to eliminate strings in place of Strings. =-)
20:44 rbaumer left #parrot
20:47 dalek parrot: r40963 | chromatic++ | trunk/src/jit/ppc/core.jit:
20:47 dalek parrot: [JIT] Removed a mistake in PPC JIT introduced in a fixup for the context_pmc3
20:47 dalek parrot: branch.
20:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40963/
21:07 NotFound What's store_global ? Old version of set_hll_global ?
21:07 chromatic Sounds right.
21:18 dalek rakudo: b51d94c | (Solomon Foster)++ | src/setting/Complex.pm:
21:18 dalek rakudo: Add Complex.sin and Complex.cos functions.
21:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​51d94cd574fae1de8a8937122cccc8ceb63301f
21:24 joeri left #parrot
21:27 Coke didn't I rip those out?
21:27 bacek joined #parrot
21:32 dalek parrot: r40964 | NotFound++ | trunk/t/pmc/threads.t:
21:32 dalek parrot: [cage] make some TODOed test at least compile
21:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/40964/
21:34 Coke NotFound: ah, guess not. danke.
21:35 NotFound Anyway one of that tests seem to depend on gone with the wind features
21:39 Coke yah, those are harder to catch when ripping things out (skip/todo)
21:40 Coke ok, committing a massive hack to partcl's [regexp] to avoid the recursion on the regexp '($|^X)*' {}
21:40 Coke (it's really a very teeny hack, but still.)
21:40 Coke http://code.google.com/p/p​artcl/issues/detail?id=102 if anyone can remember the original PGE ticket I can link to it.
21:41 Whiteknight joined #parrot
21:42 Coke are events working for parrot yet, anyone using them?
21:43 bacek Coke: I don't think that events are working...
21:43 chromatic They should be.
21:43 chromatic If they aren't, the timer tests will start failing.
21:44 Coke (need to support [after], [bgerror], [vwait]...)
21:45 Whiteknight we need to get some benchmarks for pre- and post-40962
21:45 Coke yay, that hack adds at least 168 more PASS.
21:45 Whiteknight to see if the fixed-size allocator really does save us anything
21:49 dalek partcl: r682 | coke++ | trunk/runtime/builtin/pid.pir:
21:49 dalek partcl: improve [pid] stub.
21:49 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=682
21:49 dalek partcl: r683 | coke++ | trunk/runtime/builtin/regexp.pir:
21:49 dalek partcl: Update issue 102
21:49 dalek partcl: cheat, and don't invoke PGE for the one RE in the test suite that causes us to
21:49 dalek partcl: hang.
21:49 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=683
21:52 * Coke still has 9 segfaults in the spec run.
21:53 jrtayloriv Is GMS garbage collection supposed to be building without errors? If so, it supposed to be *working*?
21:54 bacek jrtayloriv: no...
21:54 jrtayloriv bacek, ok thank you.
21:54 dalek partcl: r684 | coke++ | wiki/SpecTestStatus.wiki:
21:54 dalek partcl: workaround committed for issue #102 lets these files run to completion.
21:54 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=684
21:54 bacek Whiteknight: now much effort to make GC pluggable?
21:55 bacek (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
21:55 Whiteknight However, the bigger issue is the string allocator, which is an evil mess
21:55 bacek Whiteknight: good point.
21:56 bacek Just throw it away.
21:56 japhb joined #parrot
21:59 Whiteknight bacek: that might not be such a bad idea, except I don't think it's well-encapsulated
22:02 darbelo Whiteknight: encapsulate it, then throw it away :)
22:03 Whiteknight that's not too far off the mark
22:05 beta joined #parrot
22:05 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:10 chromatic Does [proc] reevaluate its body on every invocation?
22:10 Coke proc builds the sub.
22:11 Coke I'm not even getting to the invocation.
22:11 chromatic Does said sub reevaluate?
22:11 Coke the top level does not, IIRC. anything nested does.
22:11 Coke but we're not even getting that far.
22:12 beta left #parrot
22:12 chromatic Okay.
22:12 Coke a proc that has about 1000 * that length takes about 8s to compile.
22:12 chromatic Wow.
22:12 Coke a proc that has about 2000 * that length takes about 35s to compile.
22:12 chromatic Big O, Little O... I'm the one with the gun.
22:12 Coke the test is trying to compile one with 1,500,000
22:12 Coke This is my bOOmstick.
22:13 Coke I think I'll avoid trying to fix that one until the profiler is working.
22:14 chromatic Agreed.
22:18 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:19 Coke dear god, I'm using THREE CVSs to hack on partcl.
22:19 Coke s/CVS/VCS/
22:19 Coke (though one is cvs)
22:19 dalek partcl: r685 | coke++ | wiki/SpecTestStatus.wiki:
22:19 dalek partcl: document a hang.
22:19 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=685
22:25 kid51 joined #parrot
22:41 rg1 joined #parrot
22:42 payload joined #parrot
22:46 payload joined #parrot
22:59 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 #parrot
23:08 Whiteknight ok
23:20 donaldh joined #parrot
23:23 darbelo Does anyone know where I can find the docs on the format string for the parrot printf functions?
23:25 chromatic I'm not sure we have any.
23:27 darbelo Oh, does anyone know what "%.*s" is supposed to do then?
23:29 chromatic That looks like a standard POSIX sprintf format to me; maybe man sprintf would help you.
23:35 jonathan I think it takes a length as well as a char pointer and outputs that many chars or something like that.
23:51 duk3leto darbelo: man 3 printf
23:58 Whiteknight joined #parrot
23:58 pmichaud "%.*s"  would be the same as "%.10s"  except the "10" comes from an argument instead of being coded in the format
23:59 Limbic_Region joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced