Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2010-09-14

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

All times shown according to UTC.

Time Nick Message
03:10 tylercurtis joined #phasers
03:28 [Coke] left #phasers
08:13 tylercurtis left #phasers
13:17 masak joined #phasers
16:24 dukeleto What I did: reported some rakudo bugs (NaN.Rat and coredumping spectests due to parrot bugs). Hacked on PL/Parrot and PL/Perl6. Pre-pasting in case I am busy (at jury duty)
18:32 colomon joined #phasers
18:59 mberends joined #phasers
19:01 masak o/
19:01 mberends \o/
19:01 colomon o/
19:02 pmichaud good afternoon, #phasers
19:03 * masak phases
19:03 mberends good pm, pm
19:03 PerlJam greetings.
19:03 * PerlJam lucks into being on IRC at the right time for once
19:05 mberends report: I made lots of progress on the java/runtime part of 6model. At the end of this, I might even like Java :)
19:05 mberends .eor
19:06 pmichaud mberends: .... because you won't have to program in it?  ;-)
19:06 mberends heh
19:06 masak report: since last time, I've been fiddling a bit with Set. been wanting to apply the enums patch for a long time now, but haven't gotten around to it. maybe tonight is the night. .eor
19:08 colomon report: few very minor tweaks to Rakudo.  Tweaks to List::Utils and added binary search to it (from the old Vector module).  Now working on trying to make ABC.pm do something useful.  .eor
19:09 dukeleto hola
19:10 Tene joined #phasers
19:10 whiteknight joined #phasers
19:11 PacoLinux joined #phasers
19:12 pmichaud my report:
19:12 pmichaud Rakudo:
19:12 pmichaud * Fixed infix:<:=> to use list_assignment precedence
19:12 pmichaud * Fixed Buf.decode to work with recent Parrot
19:12 pmichaud * Rewrote List.reverse to be much more efficient
19:12 pmichaud * Cleaned up some vtables and other dead code
19:12 pmichaud * Eliminated .succ and .pred from Cool
19:12 pmichaud * Spent a lot of time tracking down and fixing Rakudo build failures with recent Parrots
19:12 pmichaud NQP:
19:12 pmichaud * Created json.nqp, a JSON compiler written entirely in NQP
19:12 pmichaud * Added trait parsing and handling to subs/methods
19:12 pmichaud * Added ability to add :main and :vtable flags to NQP-defined subs
19:12 pmichaud * Refactored code to avoid deprecated CodeString PMC
19:12 pmichaud * Added :sub<...> precedence to operator precedence parser (to support switching infix:<:=> to list_assignment in Rakudo)
19:12 pmichaud Other:
19:12 pmichaud * Trying to prod Parrot team to focus on GC, profiling
19:12 pmichaud Planned:
19:12 pmichaud * Rakudo: Fix Stringy definition
19:12 pmichaud * Rakudo: Fix Hash to no longer be a role
19:12 pmichaud * Rakudo: more core code review, refactoring, and optimization
19:12 pmichaud * book: Try to get book to a publishable state
19:12 pmichaud * nqp: Write up json compiler example as a tutorial
19:13 pmichaud * nqp: Start creating nqp::* pseudo-functions to replace pir::* .
19:13 pmichaud EOR
19:13 masak pmichaud++
19:13 * moritz_ resurfaces
19:13 moritz_ pmichaud++
19:14 colomon pmichaud: one thing that has me mildly worried -- it seems like a lot of our optimization efforts at the moment involve translating things to PIR.  While I'm all in favor of the optimization, it seems like we are making matters harder for anyone who comes along later with a different core.
19:14 moritz_ can't think of anything worthwhile to report
19:14 colomon it's like the optimizations are at war with the nqp::* replacing pir::* effort.
19:15 pmichaud colomon: I don't entirely agree with the characterization (more)
19:16 pmichaud in the case of List.reverse, I rewrote it in PIR because there is not really an optimal p6 way of describing reverse
19:16 pmichaud more to the point, List really wants to be as efficient as possible.  So the other part of the refactoring was to move .reverse out of Any-list and into List, so that at least the PIR is in one place.
19:17 pmichaud I suspect that when jnthn++'s new object implementation lands, we'll be able to eliminate a lot of pir:: and nqp:: because we'll have nice methods underneath our primitive objects.
19:18 pmichaud anyway, optimization is not entirely "translate things to PIR", but rather "figure out which things are low-level and which ones are not"
19:19 PerlJam "figure out which things beed to be primitives in nqp::"  ?
19:19 PerlJam s/beed/need/
19:20 * dukeleto wonders if #phasers has some kind of protocol or if it is the usual strangely consistent chaos
19:20 pmichaud PerlJam: hopefully, yes.
19:20 pmichaud dukeleto: chaos.
19:20 dukeleto pmichaud: awesome!
19:20 masak anarchy++
19:20 PerlJam entropy++  :-)
19:20 pmichaud any other reports coming?
19:21 masak I'm getting lots of spectest failures. I compared with moritz_ and he's getting a clean spectest run.
19:21 masak I don't know why that is.
19:21 moritz_ not anymore
19:21 masak ok.
19:21 masak anyway, there's quite a lot.
19:21 masak I have a gist somewhere.
19:21 moritz_ seems like recent parrot changes really broken some stuff in rakudo
19:21 masak oh, good.
19:21 masak then that's it.
19:21 masak guess I had a forwards Parrot, then.
19:21 pmichaud I tried rakudo with Parrot last night and had only one spectest failure (known)
19:21 dukeleto I would just like to say that Parrot devs very much care about Rakudo's needs, and I plan to improve the communication between parrot devs and rakudo devs
19:21 pmichaud (Parrot head)
19:22 * masak hugs dukeleto
19:22 * dukeleto feels loved
19:22 masak dukeleto: that's great news!
19:22 moritz_ pmichaud: I got a .reverse related failure in one of the integration tests, but lots of non-zero return statuses
19:22 pmichaud moritz_: 41-to-50?
19:22 moritz_ the problem is that if the summary report is longer than a screen page, it gets really hard to figure out what's actually happening
19:22 masak yes, lots of non-zero return statuses.
19:23 moritz_ pmichaud: think so, yes
19:23 pmichaud non-zero return status.... one time I noted that removing t/spec and starting over somehow seemed to resolve those.
19:23 pmichaud but maybe something else was happening.
19:23 masak haven't experienced that this time.
19:23 masak they consistently fail.
19:24 dukeleto i am concerned that "make spectest" does a "git pull" on roast. what if you want to run spectests with your current version of roasts.git? what if you are on a branch? git pull will commit a merge to that branch
19:24 pmichaud are the non-zero return status actually denoting failing tests, or just a test script returning non-zero for some reason?
19:24 moritz_ the latter
19:24 * dukeleto thinks git pull --rebase might be friendlier
19:25 pmichaud I'm fine with whatever git-related changes we need to make to the "make spectest" target (as long as it ultimately works, fsvo "works")
19:25 PerlJam dukeleto++
19:25 moritz_ dukeleto: doing a rebase over a branch merge can do much more harm
19:26 masak just make it not pull if it's on a branch.
19:26 dukeleto i can submit a patch, if peeps tell me what they want
19:27 dukeleto shall i make a patch that does not pull if not on master? is that wanted?
19:27 moritz_ works for me
19:27 pmichaud I'd like "make spectest" to continue to mean "test this Rakudo against the current latest spectests"
19:28 pmichaud it can halt or warn if there are uncommitted changes or t/spec is really a branch
19:28 pmichaud (halt is probably better)
19:28 masak +1
19:28 moritz_ NOOO
19:28 moritz_ that means I can't do a spectest run before committing
19:28 dukeleto moritz_: i agree
19:28 pmichaud then we should have a different target.
19:29 pmichaud I'm fine with letting uncommitted changes go through.
19:29 PerlJam make dirty-spectest
19:29 moritz_ wfk
19:29 moritz_ *wfm
19:29 pmichaud I don't really expect there to be much branching in roast, so I don't see it as a big issue.
19:30 dukeleto pmichaud: it is mostly for local branches, but I hear what you are saying
19:30 dukeleto pmichaud: if i want to hack on 2 different roast-related things, i would create local branches for them
19:30 dukeleto pmichaud: which is when I run into "git pull" being a pain
19:31 pmichaud dukeleto: I'm open to suggested fixes :)
19:31 moritz_ +1 to a spectest target that doesn't pull or fetch at all
19:31 dukeleto moritz_: yeah, i think we should leave "spectest" target the same, and add another that doesn't pull
19:32 * colomon has been using tools/test_summary.pl almost exclusively for months now... it never updates t/spec before running.
19:32 * dukeleto didn't know about test_summary.pl
19:32 whiteknight left #phasers
19:33 moritz_ colomon: my problem with test_summary.pl is that it does not parallelize
19:34 colomon moritz_: you could think of it as encouraging you to make rakudo faster... ;)
19:35 pmichaud I wonder how hard it would be to parallelize test_summary.pl .  Or if it's worth the effort.
19:36 moritz_ we have a perfectly fine parallel test target already.
19:36 pmichaud except it reports bizarre "non-zero return code" errors
19:36 pmichaud and its summary isn't always useful
19:36 pmichaud s/isn't always/is often not/
19:36 dukeleto Parallel::Iterator could be useful for that
19:37 colomon which is why I've been using test_summary.pl -- no false errors for me on OS X.
19:37 pmichaud afk, kid pickup
19:48 masak http://trac.parrot.org/parrot/ticket/1749 is now fixed -- maybe we should revert http://github.com/rakudo/rakudo/commit/77a72a31234229635f720f853d59b865342df17a ?
19:48 masak anyone for or against that?
19:51 PerlJam wow
19:51 mberends +1 to revert
19:51 moritz_ masak: maybe test the speed difference between reverted and non-reverted first? :-)
19:51 PerlJam Is there a benchmark test for it?
19:52 moritz_ we don't benchmark in tests.
19:52 moritz_ at least not in spectests
19:52 PerlJam s/test// then
19:52 masak if someone's willing to benchmark, I can push a revert :)
19:53 masak shouldn't be so hard to discover a 25x performance degradation... :)
19:53 moritz_ one more thing
19:53 moritz_ I'd like to ask for a commit bit for patrickas
19:53 colomon I think bench-scripts / pick-works.pl should test for it nicely.
19:54 moritz_ he's contributed several good patches so far, most notably series refactor and MAIN sub
19:54 PerlJam +1 from me
19:55 colomon +1
19:56 moritz_ so we just need +1 from jnthn&pmichaud and a CLA :-)
19:56 moritz_ bed time for me, TTFN folks
19:57 masak +1 from me too
19:58 masak patrickas++
20:04 PerlJam patrickas can pursue the CLA independent of anything else.
20:06 pmichaud +1 from me
20:06 pmichaud just let me know when the CLA has been sent
20:08 masak pmichaud: can you easily benchmark the above #1749 thingie?
20:08 pmichaud masak: sure
20:08 masak \o/
20:12 pmichaud 1.007s versus 1.036 (reverted)
20:12 pmichaud +1 to revert
20:12 PerlJam I think it was Alias that had the idea to include benchmarks just like we include tests.  The more I think about it, the more I like that idea.
20:13 pmichaud we have benchmarks; we just need a harness/driver
20:16 PerlJam and a database I think (with a way to choose whether to save to it)
20:17 PerlJam (where "database" could mean a CSV)
20:18 * masak reverts
20:22 * dukeleto has been thinking about a benchmark framework suitable for parrot+rakudo for a while
20:23 dukeleto i have all the pieces, but the glue keeps sticking to my hands
21:54 masak left #phasers
22:03 dukeleto 3
22:15 Tene ³

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