Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-16

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:18 japhb joined #parrot
00:21 Theory joined #parrot
00:32 Whiteknight when did Rakudo get moved to it's own HLL?
00:32 Whiteknight last i heard that was still blocked
00:33 darbelo I don't follow rakudo but I think I saw a commit about that scroll by this week.
00:34 jonathan Whiteknight: Yes.
00:34 jonathan Whiteknight: Happened just yesterday.
00:34 Whiteknight wow, nice. what ended up being the problem?
00:35 jonathan Whiteknight: Well, there were many issues along the way.
00:35 Whiteknight ...as one would expect
00:35 jonathan Whiteknight: One is that we fiddle with Parrot classes.
00:35 jonathan That maybe was the biggest source of pain.
00:36 jonathan I'd not say there was any one single huge blocker, just a lot of little bits that all had to be done.
00:36 jonathan We've taken a performance hit from it though.
00:36 jonathan Haven't really figured out why yet.
00:37 Whiteknight yeah, I just read your blog post
00:37 Whiteknight there is lots of optimization to be done throughout parrot, it's a little premature though when we don't even have all our subsystems fully implemented
00:39 jonathan Sure, that is an issue too.
00:40 jonathan Premature optimization is bad, but I fear putting any optimization off too long is going to hurt Parrot adoptation too.
00:40 jonathan The optimizations chromatic++ does seem to be quite sensible ones that won't hurt us later.
00:40 Whiteknight yes, he's a rockstar
00:40 jonathan I agree there are very likely optimzations now that could hurt later too though.
00:41 jonathan So it's a balance.
00:41 jonathan Plus Rakudo itself could easily be more optimal in a lot of places too.
00:41 jonathan But again, don't want to do it too early.
00:41 jonathan While being aware that it's already a pain point.
00:43 Whiteknight I'm surprised that multis are only 10% slower then single dispatch
00:43 darbelo purl msg cotto When you get a chance give my last commit a look and tell me if I botched the interface too badly. I'm not entirely convinced that what I did is The Parrot Way To Do It either, but it seemed sensible at the time.
00:43 purl Message for cotto stored.
00:43 jonathan Whiteknight: They probably aren't in Parrot
00:43 jonathan Perl6MultiSub has a dispatch cache.
00:43 Whiteknight yeah, I know the P6 version has some nice caching
00:44 jonathan Well, actually the cache is the same one used by opcode dispatch in Parrot.
00:44 jonathan Parrot's MultiSub PMC could also use it, if it were refactored to do so.
00:45 jonathan (Basically, stop inheriting from RPA and have an RPA instead, and then there's space for a cache pointer.)
00:45 jonathan (have an = as an ATTR)
00:46 jonathan The cache could actually be better too.
00:47 jonathan As I blogged, I put the current one together in an afternoon because I wanted something that worked and gave a decent gain.
00:47 Whiteknight I wonder how much of that runtime is related to memory allocations and the GC
00:48 Whiteknight I'm planning a few big gains in that area
00:48 jonathan I think we allocate a STRING *
00:48 Whiteknight or, things that I hope are big gains
00:50 jonathan Hopefully. :-)
00:51 jonathan Are you planning on a more generational scheme?
00:52 Whiteknight My initial plans aren't to write a new core, but to fix up some of the inefficient things the current one does
00:52 Whiteknight do fewer mallocs, for instance
00:52 jonathan *nod*
00:52 jonathan That'd certainly be a Good Thing.
00:58 jonathan ok, sleep for me, night
00:59 Whiteknight goodnight
01:28 mj41_ joined #parrot
01:34 dalek parrot: r38809 | coke++ | trunk/docs/user/pir (3 files):
01:34 dalek parrot: [docs] Test more PIR/PASM.
01:34 dalek parrot: Eliminate one sample that was broken into chunks, and just have the whole version.
01:34 dalek parrot: Probably not the best for didactic purposes, but certainly easier for testing our own samples.
01:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38809/
01:47 dalek parrot: r38810 | coke++ | trunk/docs/pmc (2 files):
01:47 dalek parrot: [docs] mark & test more PIR/PASM code
01:47 dalek parrot: Update a bunch of these examples ot use valid PIR. Mark some as _INVALID.
01:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38810/
01:51 eternaleye joined #parrot
02:10 dalek parrot: r38811 | coke++ | trunk/docs (2 files):
02:10 dalek parrot: [docs] mark & test more PIR/PASM samples
02:10 dalek parrot: rip out one sample that was marked as out of date anyway.
02:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38811/
02:13 dalek parrot: r38812 | coke++ | trunk/docs/imcc (2 files):
02:13 dalek parrot: [docs] Mark & test more PIR/PASM examples.
02:13 dalek parrot: This pointed out some remnants of some old 'global' syntax, updated so test passes.
02:13 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38812/
02:23 dalek parrot: r38813 | coke++ | trunk/docs/dev (3 files):
02:23 dalek parrot: [docs] Mark & test more PIR/PASM
02:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38813/
02:26 dalek parrot: r38814 | coke++ | trunk/docs/pct (2 files):
02:26 dalek parrot: [docs] Mark & Test more PASM/PIR code.
02:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38814/
02:34 benjaminvm joined #parrot
02:46 benjaminvm Can someone help me (I am new to Parrot)? How do I had a .c file to the Makefile/Configuration System? So it compiles and links.
02:46 benjaminvm Thanks in advance.
02:47 Whiteknight benjaminvm: what do you need to add?
02:47 benjaminvm I am mapping the call stack.
02:48 benjaminvm To create a graph for dependency documentation, using Graphviz.
02:48 Whiteknight okay
02:48 janus joined #parrot
02:48 Whiteknight You need to add the file to config/gen/makefiles/root.in
02:48 Whiteknight that's the makefile template
02:49 Whiteknight Then you need to rerun Configure.pl, which will generate the makefile from the template
02:49 Whiteknight and assuming you have all your dependencies in order, that should work
02:49 benjaminvm Thanks!
02:50 Whiteknight no problem, I'm logging off but I'll be back here tomorrow if you need more help
02:50 Whiteknight (or you can ask anyone else too)
02:50 Whiteknight goodnight
02:50 benjaminvm Night.
03:12 darbelo joined #parrot
03:12 sekimura joined #parrot
03:20 donaldh joined #parrot
03:22 particle joined #parrot
03:51 dalek parrot: r38815 | coke++ | trunk/docs/pmc/struct.pod:
03:51 dalek parrot: [docs] test/mark more PIR/PASM code.
03:51 dalek parrot: Many of these are just marked invalid for now. Please fix them!
03:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38815/
03:58 Ademan joined #parrot
04:00 cotto benjaminvm, feel free to submit a patch to the mailing list.  That sounds like an interesting project you're working on.
04:05 benjaminvm I thought a graphical representation of Parrot runtime would be handy for documentation purposes.
04:05 cotto It'd certainly help make the project more approachable.
04:10 dalek parrot: r38816 | coke++ | trunk/docs (15 files):
04:11 dalek parrot: [docs] Mark & test more pasm/pir.
04:11 dalek parrot: This marks most of what's left in docs,
04:11 dalek parrot: - upgrading some samples to compile
04:11 dalek parrot: - documenting the ones that already did,
04:11 dalek parrot: - and marking the rest as INVALID/TODO, hopefully appropriately.
04:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38816/
04:14 * Coke thinks that's the last of the PIR/PASM snippets in docs.
04:20 Austin_Hastings joined #parrot
04:20 dalek parrot: r38817 | allison++ | trunk/docs/book/ch09_pasm.pod:
04:20 dalek parrot: [book] Completely gutting the PASM chapter, and removing it (replaced
04:20 dalek parrot: by a small sidebar in the PIR chapter).
04:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38817/
04:20 dalek parrot: r38818 | allison++ | trunk/MANIFEST:
04:20 dalek parrot: [book] Updating the manifest for deleted chapter.
04:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38818/
05:35 dalek parrot: r38819 | coke++ | trunk/docs/pct/past_building_blocks.pod:
05:35 dalek parrot: [docs] make pod test happy.
05:35 dalek joined #parrot
06:20 flh joined #parrot
06:40 dalek parrot: r38820 | allison++ | trunk/docs/book/ch03_pir.pod:
06:40 dalek parrot: [book] A quarter of the way through the PIR chapter.
06:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38820/
06:55 Andy joined #parrot
07:20 donaldh joined #parrot
07:39 iblechbot joined #parrot
07:50 barney joined #parrot
08:00 integral joined #parrot
08:00 dalek lua: c0c33a4 | fperrad++ | src/pmc/lua (3 files):
08:00 dalek lua: remove useless #include
08:00 dalek lua: review: http://github.com/fperrad/lua/commit/c0​c33a4f0c88a8f3f65b07b8fa0efe0ab97f7750
08:04 clunker3 joined #parrot
08:21 dalek wmlscript: e3ac2c9 | fperrad++ | src/pmc/wmls (3 files):
08:21 dalek wmlscript: remove useless #include
08:21 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/e3ac2c9cf540dfb5d0585bcf9058c602c57c7d73
08:21 dalek wmlscript: f9871d6 | fperrad++ | src/pmc/wmls (6 files):
08:21 dalek wmlscript: remove useless #include
08:21 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/f9871d63639a0c3c2722a67044a3d779fef86bdf
08:34 dalek lua: a104000 | fperrad++ | src/pmc/luabytecode.pmc:
08:34 dalek lua: remove useless #include
08:34 dalek lua: review: http://github.com/fperrad/lua/commit/a1​0400047c30305d24c713a6854a1ed9a9b27df8
08:51 cotto does nqp support switch?
08:52 cotto guess not
08:53 bacek cotto: nope.
09:08 cotto bacek, do you subscribe to parrot-commits?
09:08 bacek cotto: nope. Should I?
09:10 cotto It'd be a good idea.  Then you'd know that I just resynced pmc_pct with trunk.
09:10 cotto (and whatever else might happen)
09:10 bacek I did see it. In IRC backlog :)
09:11 cotto Whatever works.  I just want to prevent us from getting in each other's way when possible.
09:11 bacek cotto: no worries. Git solves almost all problems :)
09:12 cotto so I've heard
09:12 bacek afk # making dinner.
09:13 bacek I'll try to find some time tomorrow to work on parrot. Still unlikely that it will happen...
09:14 cotto you'll do it when you do it
09:15 cotto Something's goofy.  say() isn't working from nqp.
09:16 bacek you have to .loadlib 'compilers/nqp/nqp.pbc' for "say" and other builtins
09:17 cotto I don't remember having to do that in the past, but it makes sense.
09:17 cotto It must have already been there.
09:18 bacek You removed it from pmcc.pir few days ago :)
09:19 cotto I did?  Silly me.
09:19 cotto I remember that now.  It didn't break anything because nothing was using it at the time.
09:20 bacek Just add it back. Or add ".sub say" into builtins.pir
09:21 cotto I'm putting it back.
09:21 bacek (less code)++
09:25 cotto heh.  I think vtable->attribute_defs can be removed.
09:25 cotto testing...
09:26 bacek It's probably not.
09:28 cotto nm.  It looks like pmcproxy uses it
09:28 cotto although that's the only place.  That's suggestive...
09:29 cotto plus the code generates the same thing for FLOATVAL and PMC*, which doesn't inspire confidence
09:29 bacek It was discussion few days ago about "inspect" IIRC. Suggestion was to return at least attributes
09:32 cotto ok.  I'll file a tt if make test passes without it, but I'll reimplement it just in case.  It's only a dozen loc anyway.
09:34 cotto Parrot doesn't build without it.
09:44 iblechbot joined #parrot
09:47 cotto bacek, have you done any work parsing vtable.tbl?
09:48 cotto nm.  you have
09:48 bacek cotto: only in perl5
09:49 bacek But I want to redo it. Current VTableInfo can be more useful
09:50 cotto ok.  I'll work on that.
09:50 bacek ok
09:50 cotto any objection to me creating a .dump once the file's parsed?
09:52 bacek no. I can't see any other place to create dump files.
09:53 bacek Or we can create reduced parser to parse ATTR's only and remove .dump files
09:54 bacek But we have to parse all parents in this case.
09:54 cotto Yeah.  dump files are much faster and it's already likely to be slower than pmc2c.
09:56 bacek It's definitely slower... Just because parrot isn't extremely fast :/
09:58 bacek And we do full parsing of pmc's instead of cheating in pmc2c :)
09:59 cotto My sekrit plan is to make parrot's build time more heavily dependent on how fast parrot runs.
09:59 cotto sneakily increasing pressure for a faster bird
09:59 bacek good plan!
10:00 bacek 15 seconds to parse default.pmc...
10:00 cotto ouchies
10:01 bacek mostly because of <c_body_statement>...
10:03 bacek It creates separated node for each char... But otherwise I can't parse <c_body_macro>.
10:06 flh joined #parrot
10:07 dalek parrot: r38821 | chromatic++ | trunk/config/gen/makefiles/root.in:
10:07 dalek parrot: [config] Added dynpmc dependency on PMC generation libraries.
10:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38821/
10:10 cotto chromatic++ for finally taking care of that dependency
10:13 darbelo joined #parrot
10:14 cotto This is going to be less trivial than I was hoping, but it'll still be nice to turn confusing regex soup into a clean grammar.
10:14 cotto darbelo, ping
10:14 darbelo cotto: pong
10:16 cotto I looked at your commit, and it looks fine, but I'd also consider accepting strings.
10:16 darbelo It does, sort of.
10:17 cotto nm.  I briefly forgot it was decContext, not one of the numerical types.
10:18 darbelo Calling set_digits with a string literal DTRT for me.
10:18 darbelo $P2 = new 'DecContext'
10:18 cotto yes
10:19 darbelo $P2.'set_digits'("23")
10:19 darbelo $I0 = $P2.'get_digits'()
10:19 darbelo say $I0
10:19 darbelo should print "23"
10:20 darbelo s/I0/S0/ works too
10:21 cotto PIR is nice that way
10:21 darbelo "say $P2.'get_digits'() " doesn't but thats a PIR thing.
10:22 cotto yeah.  One big part of using PIR is that you have to break everything down into opcode-sized chunks.
10:23 cotto btw, I highly recommend getting some sort of automated testing infrastructure in place.
10:23 cotto even for prototype PMCs
10:25 darbelo I agree. I've been testing by running the examples and it's starting to get old.
10:26 darbelo I'm reading the Test::Harness::TAP docs now and looking at some parrot tests.
10:29 cotto glad to hear it
10:29 cotto laziness is a good motivator
10:30 darbelo It looks like I can do the test files in PIR, so long as I generate proper TAP.
10:30 bacek baseball bats are good motivators also
10:31 bacek darbelo: look at t/pmc/packfile*t.
10:31 bacek You don't have to think about TAP.
10:32 darbelo I am of the opinion that those old L-shaped tire irons are superior motivational tools.
10:37 dalek parrot: r38822 | chromatic++ | trunk/src/pmc (5 files):
10:37 dalek parrot: [PMC] Modified PMC initializations to avoid unnecessary use of
10:37 dalek parrot: mem_allocate_zeroed_* functions, as they're slightly more expensive than
10:37 dalek parrot: non-zeroed allocations -- especially as these initializers immediately
10:37 dalek parrot: overwrite allocated memory.
10:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38822/
10:39 * cotto hopes that's not the only thing left to optimize ;)
10:39 darbelo I want to be chromatic++ when I grow up.
10:43 darbelo cotto: given the amount PMCs parrot creates for everything I would expect even that small saving to add up to something measurable.
10:44 cotto probably so
10:47 dalek parrot: r38823 | chromatic++ | trunk (3 files):
10:47 dalek parrot: [PMC] Modified PMC generator to skip the isa_hash in the case where the PMC has
10:47 dalek parrot: no superclass besides itself.  This allows the appropriate isa and isa_pmc
10:47 dalek parrot: VTABLE entries to perform a simple exact match instead of the comparatively
10:47 dalek parrot: expensive hash lookup for type equivalence.
10:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38823/
10:47 dalek parrot: r38824 | chromatic++ | trunk (3 files):
10:47 dalek parrot: [src] Modified raw NCI registration in PMC generator to use CONST_STRINGs
10:47 dalek parrot: instead of C strings; this removes 25% of the transient STRINGs created during
10:47 dalek parrot: startup.  The speedup is minor, but measurable.
10:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38824/
10:49 darbelo Also, I've been playing with both prototypes, and I think separate contexts are the way to go. It can do, with some effort, everything that per-pmc contexts can do.
10:50 darbelo cotto++ for changing my mind on this.
10:50 cotto glad to be of service
10:52 AndyA joined #parrot
10:52 darbelo Also changed my mind on the order of implementation. I thik now that BigNum will be easier to do first with BigInt coming later.
10:54 cotto It's a near-trivial difference anyway.
10:55 darbelo And while I'm talking about changes: I think doing s/Big/Dec/ on the names might be appropiate, now that we're not aiming to enter the parrot core.
10:56 cotto Have you looked into how to make that play nice with the existing Big* dynpmcs?
10:58 cotto I agree that it makes more sense from a naming perspective.
11:01 darbelo Not in depth. Converting a Big* to a Dec* should be straightforward enough, but I'm not sure how that would interact with the GMP availability issue.
11:02 cotto Be sure to look into it first.  It'll be important, since the gmp-based dynpmcs ship with Parrot.
11:07 darbelo The thing is I'm not entirely sure I can detect GMP at run-time. The PMCs are always there, but will throw an exception if GMP isn't. That might bring some troubles.
11:07 cotto You can catch exceptions.
11:08 * cotto hands darbelo an exception mitt
11:09 darbelo From c ? I haven't seen any parrot PMCs do that.
11:10 cotto Hmm.  I know it's possible.  lemme dig
11:10 darbelo OTOH it might not be necessary, if GMP isn't there an exception is the right thing to do.
11:12 darbelo I could use a "big -> string -> dec" conversion, and let Big* do the throwing.
11:13 darbelo same for "dec -> string -> big"
11:16 cotto I know there's a way, but I'm about 5 minutes from being a zombie.  Feel free to ask on the list, but I'm going to sleep.
11:16 cotto night
11:17 darbelo mornin^Wnight
11:21 donaldh joined #parrot
11:53 mj41 Hi. TapTinder found some regressions. http://tt.ro.vutbr.cz/report/pr-Parr​ot/do?trun-1427=on&amp;trun-1424=on
11:56 mj41 and http://tt.ro.vutbr.cz/report/pr-Parrot/do?trun-​1491=on&amp;trun-1493=on&amp;trun-1492=on&amp;t​run-1486=on&amp;trun-1490=on&amp;trun-1487=on
12:06 Whiteknight joined #parrot
12:06 darbelo Hmm. t/dynoplibs/myops.t passes for me on parrot HEAD
12:20 mj41 On my test machine it really start failing in rr38804 (chromatic) http://tt.ro.vutbr.cz/report/pr-Parrot/do?trun-​1441=on&amp;trun-1438=on&amp;trun-1434=on&amp;t​run-1430=on&amp;trun-1427=on&amp;trun-1424=on
12:36 nopaste "mj41" at 147.229.5.176 pasted "Failing tests details" (210 lines) at http://nopaste.snit.ch/16558
12:39 rg joined #parrot
12:47 darbelo Did a 'make realclean' and I'm seeing all three failures now.
12:51 HG` joined #parrot
12:52 masak joined #parrot
12:52 masak http://gist.github.com/112669 # Parrot build failure
12:52 masak seems I'm missing this file libintl.h
13:02 AndyA joined #parrot
13:14 kid51 joined #parrot
13:15 dalek parrot: r38825 | jkeenan++ | trunk (3 files):
13:15 dalek parrot: Renumbering of opcodes no longer differs between pre- and post-1.0.0 Parrot.  Revise Parrot::OpsRenumber, the script that uses it, and the file that tests it.  Cf.:  https://trac.parrot.org/parrot/ticket/469.
13:15 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38825/
13:15 Whiteknight I'm getting test failures: t/pmc/managedstruct.t, t/pmc/nci.t t/pmc/packfilefixupentry.t.
13:15 Whiteknight Anybody else seeing these?
13:16 Infinoid masak: On my machine (linux/x86-64), libintl.h is part of the glibc package
13:17 Infinoid Whiteknight: packfilefixupentry.t passes here, the other two have some failures (and some ugly crash output from nci.t)
13:18 Whiteknight I wish all this test output was a lot less verbose
13:21 burmas joined #parrot
13:21 dalek parrot: r38826 | Infinoid++ | trunk (2 files):
13:21 dalek parrot: [cage] Pass c_function_docs.t (reran headerizer) and cuddled_else.t (add a newline).
13:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38826/
13:24 darbelo Whiteknight: http://irclog.perlgeek.de/p​arrot/2009-05-16#i_1148354
13:27 Whiteknight urg, running make test again (this time with a logfile) dumped core
13:27 Whiteknight invalid pointer going into a realloc()
13:27 szabgab joined #parrot
13:27 Whiteknight (thanks for the link, darbelo)
13:27 Infinoid Whiteknight: I'm bisecting.
13:28 Whiteknight Okay, excellent
13:28 flh joined #parrot
13:28 Infinoid it wasn't c's recent NCI STRING stuff
13:29 Infinoid but it's something in the last 24 hours.  I'll let you know when the bisect is done
13:30 flh is there a way in PIR to make getstdin return something else than the actual stdin? I'd like to use that to change the behaviour of HLLCompiler in interactive sessions so that it only tries to parse things that look like (multiline) statements
13:30 Infinoid flh: What exactly do you think it should return?
13:30 Whiteknight there are definitely lots of bad failures in the t/pmc/nci.t, that suggests something changed in the NCI system
13:31 flh my own-cooked PMC, which would basically be stdin, but with a custom 'readline_interactive' method
13:31 Infinoid There are setstdout and setstderr ops, to override those, maybe we need a setstdin as well.
13:33 nopaste "kid51" at 70.107.19.15 pasted "Build failure on Darwin/PPC at r38824" (741 lines) at http://nopaste.snit.ch/16559
13:33 Infinoid (I've been wishing those overrode C level I/O rather than just pir level, but that's a separate issue.)
13:33 Infinoid kid51: ah, I think masak is seeing the same issue
13:34 Whiteknight Okay, all the failures I'm seeing are happening in the final GC run in Parrot_really_destroy
13:34 Infinoid Assuming libintl.h is available may be a linuxism (or a glibcism)
13:36 nopaste "kid51" at 70.107.19.15 pasted "Failure point in build at r38824" (10 lines) at http://nopaste.snit.ch/16560
13:36 Infinoid Whiteknight: r38822
13:37 Whiteknight woot. Infinoid++
13:37 nopaste "darbelo" at 200.49.154.172 pasted "Anothe backtrace of the failure." (14 lines) at http://nopaste.snit.ch/16561
13:38 kid51 My paste 16560 is part of the diff between the log of my last successful build on this box versus today's log of the failed build.
13:38 Infinoid nice.
13:39 rdice joined #parrot
13:39 Infinoid So what happened to osx's gettext stuff within the last day or two?
13:44 masak Infinoid: I'm back. if there's any way I can help diagnose this, please let me know.
13:44 masak maybe I should submit a parrotbug?
13:44 Infinoid masak: I'm having trouble finding out what caused the failure.  If you have time, a bisect wouldn't hurt
13:44 Whiteknight okay, I think I have at least part of it fixed
13:45 darbelo got a patch9;2~
13:45 Infinoid masak: definitely parrotbug it if we don't find an immediate fix :)
13:45 darbelo Sorry, got a patch? I can help verify.
13:45 masak Infinoid: ok, I'll bisect and then file a parrotbug.
13:46 Infinoid masak++
13:46 Infinoid darbelo: Which platform are you on?
13:47 Whiteknight commited
13:47 darbelo OpenBSD-current amd64
13:47 Infinoid Ok. I know chromatic tests religiously on linux/x86-32, so I've been running on the assumption that this was x86-64 specific.  So that makes sense
13:48 ruoso joined #parrot
13:49 dalek parrot: r38827 | whiteknight++ | trunk/src/pmc/unmanagedstruct.pmc:
13:49 dalek parrot: [PMC] undo some changes made in r38822 in unmanagedstruct.pmc. I don't know exactly why this change is causing failures, but I suspect there is something bad happening in inheritance between unmanagedstruct and managedstruct that needs to be explored and fixed
13:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38827/
13:49 Infinoid Testing now
13:50 Infinoid Result: PASS
13:50 Whiteknight w00t
13:50 Infinoid Whiteknight++
13:50 Whiteknight now just need to find the root cause, figure out why that changed caused failure in the first place
13:51 darbelo Infinoid: OpenBSD also pulls all sorts of randomization tricks on memory. It very good at crashing programs that behave fine on other systems :)
13:51 Infinoid hmm.  SELF.init() will call ManagedStruct's init, right?
13:52 Infinoid darbelo: linux 2.6 has started doing some of that too
13:52 Infinoid random stack and heap, random code location, things like that
13:52 Infinoid Makes it impossible to set conditional breakpoints in gdb which depend on pointer values, unless you turn it off first
13:53 Infinoid Good in general tho :)
13:54 Infinoid Whiteknight: At first glance, I think it's allocating a differently sized attr struct
13:54 Whiteknight I found the problem, tested, and committed it
13:54 Whiteknight managedstruct:init_pmc was calling SUPER(value)
13:55 Whiteknight which would then reallocate the attributes structure to something smaller
13:55 Infinoid yeah, and leak it
13:55 Whiteknight right
13:55 Infinoid leak the old one, I mean
13:55 Whiteknight so I removed the call to SUPER, and that fixed it
13:55 masak` joined #parrot
13:55 dalek parrot: r38828 | whiteknight++ | trunk/src/pmc (2 files):
13:55 dalek parrot: [PMC] Fixed strange coupling between managedstruct and unmanagedstruct in init_pmc that allows chromatic++'s change in r38822 to be reapplied. Infinoid++ for helping bisect
13:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38828/
13:56 Infinoid Cool.  currently, SUPER() in ManagedStruct.init_pmc() didn't really seem to do much
13:56 Infinoid hmm
13:57 Infinoid It does include a call to SELF.set_pmc(value), which in turn calls calc_offsets()
13:57 Whiteknight right
13:57 Infinoid so I guess it's initializing some stuff (?)
13:57 Infinoid uck, UnManagedStruct is way too complicated for its own good.
13:57 Whiteknight yeah, eventually that's going to need major refactoring
14:10 Infinoid oh well, everything is passing now
14:10 Infinoid if something does depend on that extra initialization, we can always just call it in MS.init_pmc directly
14:12 HG` joined #parrot
14:15 AndyA_ joined #parrot
14:18 * kid51 is still experiencing build failures
14:18 dalek parrot: r38829 | jkeenan++ | trunk/lib/Parrot/OpsRenumber.pm:
14:18 dalek parrot: At present time src/ops/ops.num is the only reasonable argument for renum_op_map_file().  So eliminate one internal ternary op so we don't have to write a test for it.
14:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38829/
14:19 nopaste "kid51" at 70.107.19.15 pasted "Build failures persist at r38828" (741 lines) at http://nopaste.snit.ch/16562
14:20 kid51 Let me try a make realclean
14:21 Infinoid kid51: Haven't found a fix for that yet, still not sure what caused it.  masak++ was going to do a bisect and post a TT
14:21 kid51 That was on Darwin/PPC. It appears I'm doing okay on Linux i386.
14:21 Infinoid yeah, it sounds OSX-specific
14:23 kid51 Damn.  These OS-specific failures are a real PITA.
14:25 kid51 Well, the problem has to have originated between r38784 and r38824.  38784 was my last successful build on Darwin/PPC, done on May 14.
14:27 Infinoid hmm, ok
14:28 nopaste "kid51" at 70.107.19.15 pasted "Difference in build logs between r38784 and r38828 on Darwin/PPC" (89 lines) at http://nopaste.snit.ch/16563
14:29 kid51 Likely source of problem:  parrot/include/parrot/parrot.h:239:23: error: libintl.h: No such file or directory
14:30 kid51 What is libintl.h?  Something Unicode-related?  IIRC there was some discussion of ICU problems on Darwin.
14:30 Infinoid not unicode, it's i18n (string translation)
14:30 Infinoid libintl.h has been included from parrot.h since 2008-04-12, whenever PARROT_HAS_GETTEXT is defined
14:31 Infinoid I can't find any recent differences either in that include or in the gettext detection stuff
14:31 Infinoid and I can't find anything i18n, libintl, gettext, osx or darwin specific at all in the last couple days' diff
14:32 Infinoid and I can't reproduce it on linux, so I can't do a bisect.  sorry
14:33 kid51 Would this TT be relevant:  https://trac.parrot.org/parrot/ticket/673
14:34 polyglotbot joined #parrot
14:34 kid51 (And, on top of everything else, smolder is down again.)
14:35 Infinoid probably not relevant.  different subsystem
14:35 Infinoid judging from the google hits, OSX has never had libintl.h, so the issue seems to be that PARROT_HAS_GETTEXT is defined when it shouldn't be
14:38 Infinoid The libintl stuff is used for supporting (for example) chinese or spanish or whatever, by putting all your strings through a lookup table (with a filename like /usr/share/locale/es/LC_MESSAGES/iso_3166_2.mo) at runtime based on some environment variables (like LC_ALL=es)
14:38 Infinoid If your platform doesn't have it, it doesn't have it.  But that shouldn't have changed in the last couple of days
14:41 Infinoid libicu is unrelated, I think.  we use it for manipulating unicode on the character level, and transcoding strings between character sets
14:43 nopaste "kid51" at 70.107.19.15 pasted "Commits most likely to have included code which breaks build on Darwin" (52 lines) at http://nopaste.snit.ch/16564
14:43 kid51 Infinoid:  Can you look at that paste and suggest a point at which to begin bisecting?
14:45 masak` bisect: r38804.
14:45 Infinoid masak++
14:46 masak` (gotta create an automatic bisecting tool for SVN...)
14:46 masak` I don't see how the changes in r38804 can affect the build failure, though.
14:46 masak` but perhaps someone else does.
14:46 Infinoid masak: There are two of them on CPAN, one written by Coke and one written by me
14:47 Infinoid Coke's is more automatic.  Mine is more like git bisect.
14:47 Infinoid It must be stripping something from the Config array that it shouldn't be
14:47 Infinoid s/ be//
14:49 masak Infinoid: would it be useful if I svn upped, reverted r38804, and tried building?
14:50 AndyA joined #parrot
14:50 Infinoid Sure
14:51 Infinoid masak: Actually... I'd love to see the diff of your config_lib.pasm before and after the revert
14:52 nopaste "kid51" at 70.107.19.15 pasted "Instances of PARROT_HAS_GETTEXT" (4 lines) at http://nopaste.snit.ch/16565
14:53 Infinoid Ok, so it's defined.  It shouldn't be.  I don't know why, but it sounds like reverting it will change that (and maybe some other stuff)
14:56 kid51 Am building at r38804.  There are no significant differences between that r's config_lib.pasm and that of HEAD.
14:56 Infinoid kid51: if r38804 is the first bad rev, I suggest trying r38803
14:57 Infinoid (r38804 will just fail in the same way)
14:57 kid51 Infinoid:  yeah that just occurred to me as well.
14:58 masak Infinoid: I'll make sure to get you the diff, but I can already say that Parrot builds with the commit reverted.
14:58 Infinoid thanks!  that diff will be handy for waving at people on-list
15:00 Infinoid (you shouldn't need to do a full build to get the diff, config_lib.pasm is generated by Configure.pl)
15:01 tetragon joined #parrot
15:03 kid51 Build failed at r38804.
15:03 kid51 ... on Darwin/PPC.
15:09 Infinoid r38830 reverts r38804.  I can post to list about it when we understand the consequences a little better
15:11 dalek parrot: r38830 | Infinoid++ | trunk/config/gen/config_pm.pm:
15:11 dalek parrot: [config] Revert r38804.
15:11 dalek parrot: Apparently, it causes PARROT_HAS_GETTEXT to be falsely defined on OSX, resulting in build errors:
15:11 dalek parrot: /Users/jimk/work/parrot/incl​ude/parrot/parrot.h:239:23: error: libintl.h: No such file or directory
15:11 dalek parrot: Revert it for now, until a better solution can be found.
15:11 dalek parrot: masak++ and kid51++ for reporting and bisecting.
15:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38830/
15:14 kid51 Infinoid:  Could you open a TT which describes this problem and what steps we've taken so far to correct it?  So that we have a record of what we tried.
15:17 Infinoid I will, yes
15:19 masak http://gist.github.com/112709 # diff of config_lib.pasm
15:20 masak Infinoid: I haven't created a TT yet, so you're welcome to go ahead and do it.
15:20 donaldh joined #parrot
15:20 dalek parrot: r38831 | whiteknight++ | trunk/docs/book/ch04_compiler_tools.pod:
15:20 dalek parrot: [book] some clarifications in the first sections of chapter 4. These parts were a little confusing and probably need more work still
15:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38831/
15:21 Infinoid I think it must be an include path in ccflags that caused it
15:25 Infinoid actually, the normal CFLAGS doesn't seem to be used when compiling pbc_to_exe.c, though it's used for lots of other .o files (which apparently compile just fine with gettext)
15:25 kid51 Confirmed that r38803 successfully completed 'make' on Darwin/PPC.
15:25 kid51 So confirm that problem (in whole or in part) occurred with r38804.
15:26 Infinoid thanks
15:26 Infinoid Ah.  the Makefile CFLAGS are right, but r38804 meant ccflags was no longer available to PIR.  (pbc_to_exe.o is compiled by tools/dev/pbc_to_exe.pir, not the Makefile)
15:27 * Infinoid writes it all up
15:30 nopaste "kid51" at 70.107.19.15 pasted "Significant differences in config_lib.pasm between r38803 and r3884 on Darwin/PPC" (127 lines) at http://nopaste.snit.ch/16566
15:35 kid51 Confirm that r38830 (reverting 38804) builds successfully on Darwin/PPC.
15:38 Infinoid thanks, TT #675
15:38 Infinoid I think we can reapply r38804, but make it whitelist a few key items
15:42 nopaste "darbelo" at 200.49.154.172 pasted "t/dynoplibs/myops.t still fails on OpenBSD amd64" (57 lines) at http://nopaste.snit.ch/16567
15:42 Infinoid I am a bit worried that additional items pertaining to Configure.pl options may also need to be whitelisted.  if they aren't enabled by default, they won't be seen until someone tries them, which will be a really nice, hard-to-find bug causing headaches later on
15:44 darbelo Whiteknight: I'm still seeing a failure after your commits. The previous nopaste has the output of prove -v and a backtrace.
15:45 Whiteknight there is a failure in t/pmc/packfile... or something
15:45 Whiteknight is that what you are seein?
15:46 darbelo mine's on t/dynoplibs/myops.t
15:46 dalek parrot: r38832 | whiteknight++ | trunk/docs/book/ch04_compiler_tools.pod:
15:46 dalek parrot: [book] more reworking of the first parts of chapter 4
15:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38832/
15:47 Whiteknight hmmm, that one isn't failing on my system
15:47 darbelo dumps core on Parrot_exit
15:47 darbelo http://nopaste.snit.ch/16567 has the backtrace
15:48 Whiteknight right, i saw the backtrace, does look similar to the one for the managed struct issue that I just fixed
15:48 Whiteknight without being able to duplicate it locally, or without getting a bisect, I really can't fix it
15:48 Infinoid ooh, context handling
15:49 * Infinoid tries throwing openbsd into qemu
15:50 darbelo Infinoid is in for some failures :)
15:50 * Infinoid suspects it won't be as broken as dragonfly
15:52 Whiteknight darbelo: Can you open up the debugger and see if Parrot_Scheduler_destroy() is being called before that call to Parrot_Timer_destroy()?
15:52 davidfetter joined #parrot
15:53 darbelo Not entirely sure how to invoke gdb to run a parrot test.
15:54 Whiteknight depends if the test is written in Perl or Parrot
15:54 HG` joined #parrot
15:54 Whiteknight if Perl, you would do "start t/dynoplibs/myops_7.pasm" probably
15:55 Whiteknight or maybe .pir
15:55 Whiteknight if Parrot, just "start t/dynoplibs/myops.t"
15:55 darbelo Looks like perl to me.
16:01 Whiteknight yeah, the test file is t/dynoplibs/myops_7.pir
16:02 darbelo any particular reakpoints ou want me to set?
16:03 Whiteknight Parrot_Scheduler_destroy and Parrot_Timer_destroy
16:03 Whiteknight set both and see which one comes first
16:12 Whiteknight okay, I'm going to disappear for a little bit, let me know which goes first when you figure it out
16:12 Whiteknight later
16:12 darbelo later
16:19 nopaste "infinoid" at 75.28.74.203 pasted "[patch] Redo r38804, but whitelist a few key items" (29 lines) at http://nopaste.snit.ch/16568
16:20 Infinoid masak,kid51: Do either of you have a moment to try that patch against latest trunk?
16:20 mberends joined #parrot
16:20 Infinoid oh, kid51 left.
16:20 flh joined #parrot
16:22 nopaste "darbelo" at 200.49.154.172 pasted "Parrot_Timer_destroy and Parrot_Scheduler_destroy calls" (34 lines) at http://nopaste.snit.ch/16569
16:23 darbelo purl: msg Whiteknight The debug info for the OpenBSD segfault is at http://nopaste.snit.ch/16569
16:23 purl Message for whiteknight stored.
16:29 * masak tries the patch
16:33 Infinoid masak: It would probably help if I gave you something that perl5 can parse. s/foreach my key/foreach my $key/
16:34 masak aye...
16:34 * masak tries again
16:38 Theory joined #parrot
16:40 Whiteknight thanks darbelo++
16:41 dukeleto joined #parrot
16:41 dukeleto_ joined #parrot
16:42 Infinoid masak: I'm going to throw the whitelist idea out and try a different approach, based on chromatic's comments in http://groups.google.com/group/parrot-de​v/browse_thread/thread/d33ef7c89d50d84a
16:42 nopaste "Whiteknight" at 69.249.200.13 pasted "Possible fix for darbelo++" (18 lines) at http://nopaste.snit.ch/16570
16:43 Whiteknight purl msg darbelo check out http://nopaste.snit.ch/16570. Give that patch a test and see if it fixes your problem
16:43 purl Message for darbelo stored.
16:44 Whiteknight purl msg darbelo if that doesn't work, open a trac ticket for the issue with your backtrace.
16:44 purl Message for darbelo stored.
16:57 masak` joined #parrot
17:10 HG` joined #parrot
17:31 darbelo purl: msg Whiteknight All tests successful! Your patch fixed it form me. Thanks.
17:31 purl Message for whiteknight stored.
17:34 AndyA joined #parrot
17:53 mikehh_ joined #parrot
17:55 rhr joined #parrot
18:21 benjaminvm joined #parrot
18:30 dalek decnum-dynpmcs: r43 | darbelo++ | trunk/t/rounding_mode.t:
18:30 dalek decnum-dynpmcs: Add our first test, not usable yet .
18:30 dalek decnum-dynpmcs: Until I figure out the harness problems make test is still a no-op.
18:30 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=43
18:31 PacoLinux joined #parrot
18:35 Infinoid darbelo: harness problems?
18:36 darbelo Sort of. There's me, there's a harness, and there are problems ;)
18:37 Infinoid how enlightening :)
18:40 bsdz joined #parrot
18:41 darbelo Most of the build infrastructure for decnum-dynpmcs came from the create_language.pl script, but the t/harness file it generates wants to test a langage , I'm trying to convice it otherwise.
18:44 darbelo Well, was. Now I'm checking out the one mk_language_shell.pl generates.
18:46 Whiteknight joined #parrot
18:53 Whiteknight darbelo: ping
18:57 Infinoid oh, ok.  well, if your tests are written in perl, it's enough if your Makefile's test: rule just runs "prove t"
18:58 Infinoid ah, you're writing them in pir.  I'm sure we can throw something together that'll work
19:01 Infinoid darbelo: I don't see a t/harness in decnum-dynpmcs.  But your t/rounding_mode.t doesn't have a tag indicating how to run it... it might be as simple as putting a "#! parrot" at the top of the file
19:11 darbelo It looks like I forgot to svn add the harness. The #! hasn't made any difference, probably becouse parrot isn't in my path.
19:19 dalek parrot: r38833 | petdance++ | trunk/config/gen/makefiles/root.in:
19:19 dalek parrot: final cleanup of some redundant splint flags
19:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38833/
19:20 donaldh joined #parrot
19:20 Infinoid darbelo: I can take a look if you commit it
19:25 darbelo I *think* I have it now. I'll commit something in a few minutes.
19:42 Whiteknight joined #parrot
19:43 dalek decnum-dynpmcs: r44 | darbelo++ | trunk/ (3 files):
19:43 dalek decnum-dynpmcs: Minor typo-fixes to t/rounding_mode.t
19:43 dalek decnum-dynpmcs: Add a harness script.
19:43 dalek decnum-dynpmcs: Uncomment "make test" in the Makefile.
19:43 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=44
19:55 dalek parrot: r38834 | whiteknight++ | trunk (6 files):
19:55 dalek parrot: [gc] separate out the MS core from the general marking and sweeping utility functions. needs cleaning
19:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38834/
19:58 cotto darbelo, you should put a coda at the end of the .t file to get proper syntax highlighting.  See t/pmc/env.t for an example.
20:08 cotto Whiteknight, I think you broke the build.
20:09 cotto or not.  It may just be a manifest issue.
20:09 Whiteknight did I?
20:10 cotto yup
20:10 Whiteknight it builds fine for me, what error are you getting?
20:10 Infinoid init::manifest -      Check MANIFEST...No such file: src/gc/gc_ms.c
20:10 Infinoid (during configure)
20:10 cotto make: *** No rule to make target `src/gc/gc_ms.c', needed by `src/gc/gc_ms.o'.  Stop.
20:10 Whiteknight ah, shit. I forgot to svn add that file
20:10 * Whiteknight fixes that now
20:11 darbelo cotto: Done. I don't use syntax-hilighting, so I din't notice the lack of it.
20:11 Whiteknight committed. Thanks cotto++!
20:12 cotto Whiteknight, always glad to point that out. ;)
20:12 dalek decnum-dynpmcs: r45 | darbelo++ | trunk/t/rounding_mode.t:
20:12 dalek decnum-dynpmcs: Add coda to .t file.
20:12 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=45
20:14 dalek parrot: r38835 | whiteknight++ | trunk/src/gc/gc_ms.c:
20:14 dalek parrot: [gc] adding a file that I forgot. cotto++
20:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38835/
20:14 cotto darbelo, really?  It's shiny.  If you're using vim you can run make vim-install in editors.  If you're using emacs, there's some .el files that you'll probably know what to do with.
20:15 cotto *editors/
20:16 Infinoid Whiteknight: hmm, I have some linker errors
20:16 Infinoid /home/infinoid/parrot-dev/t​est/blib/lib/libparrot.so: undefined reference to `Parrot_gc_ms_free_pmc'
20:17 Infinoid /home/infinoid/parrot-dev/t​est/blib/lib/libparrot.so: undefined reference to `Parrot_gc_run_init'
20:17 Infinoid /home/infinoid/parrot-dev/t​est/blib/lib/libparrot.so: undefined reference to `Parrot_gc_ms_run_init'
20:17 dalek parrot: r38836 | whiteknight++ | trunk/src/gc (4 files):
20:17 dalek parrot: [gc] move a few more functions around, a few funcs that don't need to be in the MS core. Start fixing up the documentation
20:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38836/
20:18 mikehh I am getting t/compilers/imcc/syn/regressions.t failures in make -k fulltest (test 14)
20:18 cotto Whiteknight, same as Infinoid here
20:19 Whiteknight crap damn fart
20:19 Infinoid that was r38835, trying r38836 now
20:19 mikehh it passes in make test but fails in the all the runcore tests
20:19 chromatic joined #parrot
20:19 chromatic Infinoid, ping
20:20 Infinoid Whiteknight++ # that fixed it
20:20 Infinoid chromatic: pong
20:20 Infinoid darbelo: I get "Invalid rounding mode provided!" from your test on linux/amd64
20:21 darbelo On all of them?
20:21 dalek parrot: r38837 | petdance++ | trunk (3 files):
20:21 dalek parrot: quieted some splint warnings; consted some local vars
20:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38837/
20:21 chromatic I just sent a message to the list about big performance improvements in Parrot_str_find_cclass(); I think you might be able to implement that idea quickly.
20:21 Infinoid darbelo: There's only one test script; it it crashes parrot with that message before emitting any tap output
20:21 Infinoid chromatic: Thanks, I'll check it out
20:22 chromatic It should be relatively simple, if my analysis is correct.
20:22 chromatic Do you have kcachegrind or can you install it?
20:23 Infinoid I do, but I've only used it once or twice, and don't remember the specifics
20:24 chromatic http://wgz.org/chromatic/t​mp/callgrind.out.12081.bz2
20:24 chromatic bunzip2 that, then run kcachegrind callgrind.out.12081
20:24 Infinoid darbelo: My mistake.  There's lots of fail output before that.  I'll nopaste it
20:25 nopaste "Infinoid" at 75.28.74.203 pasted "decnum-dynpmcs failures for darbelo" (14 lines) at http://nopaste.snit.ch/16573
20:25 Infinoid It might just be that I've configured it wrong.
20:25 chromatic You should see a pretty graph.  I like to show absolute costs and display percentage relative to parent.  Search for Parrot_str_find_cclass, and the callgraph view in the bottom right pane should help you see what's what.
20:25 Infinoid chromatic: 2009-05-16 13:25:57 ERROR 403: Forbidden.
20:26 chromatic one chmod later, it's not forbidden.
20:26 Infinoid Like magic.
20:28 Infinoid ok, I can see it spends 60% of its time in get_codepoint()
20:29 jonathan chromatic: oh hi
20:29 purl hi, jonathan.
20:30 jonathan chromatic: Interestingly enough, I was trying to debug a hang the other day and broke into some code from the debugger during the parse stage.
20:30 jonathan chromatic: And it seemed pretty busy in the cclass handling code. :-|
20:31 chromatic Yeah.  Inverting the iterator should give us a measurable improvement.
20:31 chromatic Perhaps as high as 25% in parsing intensive code, but more likely 15%.
20:33 jonathan That'd still be a very welcome change.
20:33 jonathan I've started a branch in Rakudo to use hll_map to create Perl6MultiSub straight off rather than creating a MultiSub and re-blessing at startup.
20:34 jonathan That should shave a little more off startup time.
20:34 chromatic The nice part about the Parrot_str_find_cclass speedup is that it also helps another slow part: CodeString's lineof().
20:35 jonathan Didn't you also already add some caching to that?
20:35 chromatic I did.  It's less slow than it was.
20:35 jonathan Nice.
20:35 jonathan But more speed would certainly be good.
20:36 chromatic Another part of slowness I can't fix now is that PCT holds on to Captures a long time.
20:36 Infinoid Coke++ # Bet you thought all those documentation changes were a thankless task, huh.
20:37 jonathan chromatic: I think that's because we keep hold of the parse tree all the way through to the stage of generating the POST.
20:37 darbelo I have to dissapear for a while. I'll check out the tests later.
20:37 darbelo Bye
20:37 dalek parrot: r38838 | whiteknight++ | trunk/src/gc/gc_ms.c:
20:37 dalek parrot: [gc] update documentaton for the new gc_ms file, separating functions into groups by purpose
20:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38838/
20:37 cotto bye
20:37 jonathan chromatic: Not sure that's easily changable though, given the info is currently needed all the way through.
20:39 Coke chromatic: editor-type question for you.
20:40 Coke chromatic: I find a PIR_FRAGMENT In the book that doesn't work; it uses a non-existant syntax. Just mark it as invalid, or rip out the offending docs /and/ code?
20:40 Coke rant. I want a test harness that gives me an option for a summary of test descriptions for failed tests, not numbers. numbers are often useless.
20:41 Coke Infinoid: oooh, karma. =-)
20:42 Coke chromatic: I will err on the side of caution for now.
20:42 mikehh make html - Failed to process docs/book/ch09_pasm.pod. - the chapters need renumbering and/or the makefile needs fixing
20:43 chromatic Coke, mark it as invalid and leave a note for the editor with =for editor/=end for
20:43 Coke chromatic: I can add that, but having INVALID markers sufficient?
20:43 Coke "isn't"
20:44 dalek parrot: r38839 | whiteknight++ | trunk (4 files):
20:44 dalek parrot: [gc] rearrange some functions that a pool-related and not ms-related
20:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38839/
20:44 dalek parrot: r38840 | coke++ | trunk/docs/book/ch03_pir.pod:
20:44 dalek parrot: [docs] the syntax described here is invalid.
20:44 Coke (currently 32 cases of invalid code in the books)
20:44 chromatic Probably.
20:44 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
20:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38840/
20:44 Coke msg allison before the book goes to press, "t/examples/pod.t" should probably not have any TODOs in docs/book
20:44 purl Message for allison stored.
20:50 dalek parrot: r38841 | whiteknight++ | trunk/src/gc (4 files):
20:50 dalek parrot: [gc] rearrange a few more things
20:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38841/
20:50 dalek parrot: r38842 | coke++ | trunk/t/codingstd/c_function_docs.t:
20:50 dalek parrot: [t] skip some more files that don't have all their function docs yet.
20:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38842/
20:54 dalek parrot: r38843 | whiteknight++ | trunk/src/gc (6 files):
20:54 dalek parrot: [gc] rename Parrot_gc_sweep to Parrot_gc_sweep_pool, since that's a more accurate description for what it does
20:54 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38843/
20:57 cotto no, probably is <reply>
20:57 purl okay, cotto.
20:59 bsdz joined #parrot
21:00 dalek parrot: r38844 | petdance++ | trunk/lib/Parrot/Vtable.pm:
21:00 dalek parrot: Starting to note observers for splint
21:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38844/
21:00 dalek parrot: r38845 | whiteknight++ | trunk/src/io/core.c:
21:00 dalek parrot: [gc] fix a small documentation note in src/io/core.c about what GC function calls it
21:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38845/
21:04 dalek parrot: r38846 | whiteknight++ | trunk/src/gc (3 files):
21:04 dalek parrot: [gc] move and rename trace_active_PMCs. It's a static function now
21:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38846/
21:10 dalek parrot: r38847 | chromatic++ | trunk/src/oo.c:
21:10 dalek parrot: [oo] Fixed a semi-predicate problem in
21:10 dalek parrot: Parrot_oo_find_vtable_override_for_class(), where the function ignored the
21:10 dalek parrot: cached absence of a VTABLE override.  Respecting the case where Parrot's
21:10 dalek parrot: already performed the lookup and found no override improves the Rakudo-building
21:10 dalek parrot: benchmark by 10.42%.  The improvement is similar in other heavily OO code.
21:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38847/
21:11 Infinoid chromatic: Hmm, the character class checking for unicode is rather complicated.  There's still a typetable for the iso8859-1 case, but there's also u_iscclass() for the high characters, which I'm going to have to duplicate across 3 unicode encoding plugins
21:12 Infinoid Is that what you had in mind?
21:12 chromatic I had only looked at the ASCII case, really.
21:12 Infinoid Well, I have that one done, it wasn't hard
21:12 chromatic It could be that we only have a shortcut where it's possible to go really really fast.
21:13 Infinoid Well, I have no problem with handling ascii really really fast
21:13 chromatic Latin 1 fast is also good.
21:13 chromatic If we can do those, we get most of Perl 6 faster.
21:13 Infinoid If the encoding plugin calls back to the charset plugin for the high characters, should that be a function pointer, or should I un-staticify that function?
21:14 chromatic I'm not sure we even have to do that.
21:14 chromatic In the ASCII and Latin-1 find_cclass, you can immediately go to the fast encoding iterator instead.
21:14 chromatic Leave the others untouched.
21:14 chromatic I *think* that works.
21:15 Infinoid Ok, I have most of that already
21:16 Infinoid (but I have to wonder what charset/encoding rakudo is assuming its code to be, these days)
21:16 chromatic Latin-1 I thought.
21:17 chromatic Certainly we're hitting the ASCII path in this profile.
21:17 Infinoid Great, then the bonus should be non-zero
21:17 chromatic At least 17%, if I read this new profile right.
21:17 chromatic That's on top of the 10.4% from the OO change.
21:39 dalek parrot: r38848 | petdance++ | trunk (3 files):
21:40 dalek parrot: Adding macros for splint exposure tracking
21:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38848/
21:40 dalek parrot: r38849 | whiteknight++ | trunk/src/gc (8 files):
21:40 dalek parrot: [gc] a large series of cleanups, trying to rename things to be more consistent.
21:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38849/
21:53 dalek parrot: r38850 | whiteknight++ | trunk/src/gc (6 files):
21:53 dalek parrot: [gc] a few more small function moves.
21:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38850/
22:05 benjaminvm joined #parrot
22:30 Theory joined #parrot
22:32 dalek parrot: r38851 | whiteknight++ | trunk/src/gc/gc_ms.c:
22:32 dalek parrot: [gc] clean up the function gc_ms_mark_and_sweep a little, remove extraneous comments, etc.
22:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38851/
22:58 Infinoid hmm, now I'm seeing failures in t/pmc/packfileconstanttable.t
22:58 Infinoid Parrot_PackfileConstantTable_set_pmc_keyed_int is being called with a dead pmc (its vtable pointer is 0xdeadbeef)
23:09 ruoso joined #parrot
23:20 donaldh joined #parrot
23:28 Infinoid The packfile failures I'm seeing happen even without the upcoming commits...
23:30 dalek parrot: r38852 | Infinoid++ | trunk/src (3 files):
23:31 dalek parrot: [cage] Fix some codetest failures.
23:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38852/
23:31 dalek parrot: r38853 | Infinoid++ | trunk (7 files):
23:31 dalek parrot: [encoding] Implement chromatic++'s idea to push the Parrot_str_find_cclass() loop down into the encoding plugin, for the ascii and iso-8859-1 cases.
23:31 dalek parrot: This saves several million function calls worth of overhead.
23:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38853/
23:50 cotto Infinoid, I'm not seeing any test failures on my i386 Hardy box.
23:50 cotto at r38853
23:52 bacek good morning
23:52 purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
23:53 bacek Who broke my shiny packfile pmc's? :)
23:55 Infinoid I think it's an intermittant gc issue
23:56 Infinoid bisect blamed a rev that tested perfectly earlier today
23:56 kid51 joined #parrot
23:56 bacek ouch...
23:56 Infinoid but it seems to be crashing reliably now
23:56 Infinoid so it seems dependent on time of day or phase of moon
23:57 dalek parrot: r38854 | cotto++ | branches/pmc_pct/compilers​/pmcc/src/emitter/pmc.pm:
23:57 dalek parrot: [pmcc] emit an attribute_def string similar to what pmc2c does
23:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38854/
23:58 * bacek building svn version of parrot to check
23:58 Infinoid heh, now the same tree is passing again.  I didn't rebuild or change anything
23:59 Infinoid maybe it's dependent on how many episodes of robot chicken I watch :)
23:59 bacek Stop watching them!!!
23:59 bacek You are breaking parrot!

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

Parrot | source cross referenced