Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2011-08-23

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

All times shown according to UTC.

Time Nick Message
00:19 jnthn_ joined #phasers
15:04 sorear DID:
15:06 sorear implemented m/s modifiers :pos, :continue, and :x (subst only)
15:06 sorear got $file.IO ~~ :r working for diakopter (I just did Pair.ACCEPTS, he gets the credit for the actual filetests)
15:07 sorear added &dir for flussence
15:07 sorear scheduled a class opposite #phasers, again!
15:07 sorear EOR
15:24 pmichaud perhaps we should move #phasers so that sorear++ can attend.
15:49 mberends joined #phasers
18:01 masak joined #phasers
18:08 colomon joined #phasers
18:27 mikehh joined #phasers
18:56 moritz what I did:
18:56 moritz * fiddled more with backtraces, introduced hidden_from_backtraced trait
18:56 moritz * specced it
18:57 moritz * implemented lots of methods in Cool
18:57 moritz * implemented &first, &dir
18:57 moritz * fixed name of auto-generated protos
18:57 moritz * implemented and specced Match.{pre,post}match
18:57 moritz * started more systematic testing of Match objects
18:58 moritz * implemented p5chomp, p5chop only to have it ripped out aftwards :-) -- still a net win
18:58 moritz * fixed .split for non-Str invocant and non-Regex matcher
18:59 colomon moritz++
18:59 moritz What I plan to do:
18:59 moritz * blog about the current state of my exceptions + backtraces work
18:59 moritz * more general nom fixes, if issues turn up that I feel qualified to fix
18:59 moritz EOR
19:00 colomon o/
19:00 moritz oh, forgot:
19:00 sjohnson joined #phasers
19:00 moritz * submitted tadzik++'s final gsoc evaluation
19:00 sjohnson whats this goodness?
19:00 masak moritz++
19:00 masak \o
19:00 sjohnson ( `ー´)
19:00 moritz it's a PASS; no questions here
19:00 tadzik (:
19:00 colomon tadzik++
19:00 moritz sjohnson: do read the /topic
19:00 * sjohnson reads the topic
19:00 sjohnson ah, i see :)
19:01 moritz anyone want to report? colomon? tadzik? masak? jnthn? pmichaud?
19:01 jnthn o/
19:01 moritz mberends?
19:01 jnthn i can
19:01 mberends moritz++
19:01 moritz jnthn: then go ahead
19:01 * tadzik wants to report, but he can't open a browser until nom finishes to compile
19:01 jnthn Over the last week...
19:01 jnthn * Went to YAPC::EU, and it was outstanding
19:01 jnthn * Gave two talks, and a full day class
19:01 jnthn * Published Grammar::Tracer and Grammar::Debugger modules on GitHub
19:01 jnthn * Many useful discussions, including planning Rakudo dev for the coming months
19:01 jnthn * Many good beers too \o/
19:01 jnthn * Got a little hacking done, but was mostly busy with speaking, preparing to speak and having discussions with people
19:01 jnthn In the coming week...
19:01 jnthn * Doing a long weekend of visiting, so will lack tuits; otoh, the mental break for several days will probably make me more productive afterwards
19:02 jnthn * Want to fix the memory leak, plus hack more on parametrics
19:02 jnthn Looking further ahead, I already have a full Perl 6 day each week blocked out on my schedule throughout September, and that should go on throughout the year, so should do OK for tuits this autumn - unlike last one.
19:02 jnthn EOR
19:02 tadzik \o/
19:02 masak did: some exploration on macros. came out of blogging limbo. will do: write a Hague grant proposal for implementing macros. blog more. EOR
19:02 moritz \o/
19:02 moritz jnthn++
19:02 moritz masak++
19:02 mberends jnthn++ masak++
19:02 jnthn \o/
19:02 masak \o/
19:02 moritz more reports?
19:02 tadzik yes, just a second
19:03 tadzik carry on, I'll catch up
19:03 colomon may I?
19:03 mberends did: experimenting, thinking .EOR ;)
19:03 colomon * got trig up to snuff on nom (along with moritz++)
19:04 colomon * started working at getting sin.t on niecza, only to discover major holes in the trig spec
19:04 colomon plan:
19:04 colomon * blog post on the trig issue
19:04 colomon * figure out the right way to resolve the problem
19:05 colomon EOR
19:05 moritz colomon++
19:07 mberends I have a couple of discussion topics to put forward
19:07 tadzik I'll report in 10 seconds
19:08 tadzik + attended YAPC::EU, giving one Pod lightning talk, and another Perl6 one about Little Animal Farm with masak++
19:08 tadzik + lots of inspiring discussions with TheDamian
19:08 tadzik + implemented formatting codes
19:08 tadzik + lots of tunes and fixes in Pod::To::Text
19:08 tadzik + few Pod bugfixes the gsoc pencils-down
19:08 tadzik + implemented cwd()
19:08 tadzik + fixed MAIN
19:08 tadzik + implemented optional command-line values in HLL::Compiler
19:08 tadzik + --doc takes a value, defaulting to 'text'. Not sure what to do with that power yet :)
19:08 tadzik + implemented Pod block configurations
19:08 tadzik + successfully finished GSoC :)
19:08 tadzik + helped flussence++ a bit with Pod::To::HTML
19:08 tadzik + messed with S26 a bit
19:08 tadzik plans:
19:08 tadzik + blogging about gsoc and New Secret Project
19:09 tadzik =end report
19:09 masak tadzik++! \o/
19:09 moritz tadzik++
19:09 moritz tadzik++
19:09 sjohnson left #phasers
19:09 mberends aye, tadzik++
19:10 colomon New Secret Project?
19:10 tadzik also, I have a discussion topic as well
19:10 tadzik or two
19:10 tadzik colomon: it's secret :)
19:10 tadzik but it's related to Pod and Presentations
19:10 colomon you can tell me, I won't tell anyone else.
19:11 tadzik that's how a linked list of secret starts :)
19:11 * jnthn is muchly impressed by how much tadzik++ and moritz++ got done this week :)
19:12 masak tadzik++ moritz++
19:12 tadzik oh, my report is actually from 2 weeks
19:12 colomon hear, hear!  member:tadzik++ member:moritz++
19:12 colomon errr... interesting.
19:12 tadzik last #phasers I was dining with @zebras
19:13 tadzik so the reports accumulated
19:13 colomon tadzik: right, everyone but moritz, PerlJam (I think), and I missed that #phasers.  :)
19:13 tadzik :)
19:14 TimToady we were using alternate actions on our Phasers grammar...
19:14 tadzik ok, discussions? mberends, you have some topics I think
19:14 mberends yes
19:14 mberends the Rakudo 2011.08 release schedule has gone non-deterministic because of a hard to find memory leak. Should we switch back to master for one more monthly release?
19:15 jnthn mberends: Well, nom didn't become master yet so there's not a "switch back" as such.
19:16 jnthn It's for pmichaud++ to decide really, I don't think there's much point to another master release. Nothing's really changed.
19:16 mberends ok
19:16 TimToady .oO(Perl 6 is dead!  You heard it here first!)
19:16 mberends sorear++ again has a scheduling clash #phasers time. pmichaud++ wondered if we could agree on a different weekly time/day.
19:16 * moritz agrees with jnthn
19:17 jnthn The memory leak is narrowed down. It's still hard to find, but at least it's just a bale of hay now, not a stack :)
19:17 moritz yes, but we need sorear++ to find a new time
19:17 jnthn mberends: We probably can but...what moritz++ said :)
19:17 tadzik we can make a doodle survey for that
19:18 mberends ok, let's do that
19:19 mberends lastly, how many people would be unhappy if tools/test_summary.pl ran about 8% slower, to re-enable per-test timings?
19:19 jnthn mberends: Could it easily be an option?
19:19 moritz if spectest is unaffected, I'be fine with it
19:19 tadzik moritz++
19:19 colomon mberends: I actually use test_summary.pl to run my spectests, so I'm somewhat against that....
19:20 PerlJam mberends: make a test_timings.pl or something
19:21 TimToady too much dup code?  option seems reasonable to me
19:21 mberends ok, I'll try a redesign that does not add any delays anywhere else
19:21 PerlJam mberends++
19:22 mberends a command line option is likely to do the trick
19:22 TimToady which way should the default be?  :)
19:22 mberends opt-out
19:22 mberends ;)
19:23 tadzik o/
19:24 * TimToady is not the chair, but recognizes tadzik++
19:24 tadzik I'd like to bring my topic up
19:24 TimToady mberends: are you done?
19:24 mberends thanks, yes :)
19:24 TimToady tadzik: go ahead
19:25 * PerlJam would hate to be a chair ...
19:25 PerlJam people always sitting on you and such.
19:25 TimToady table that :)
19:25 tadzik I want to raise a marketing issue. We argue when someone says that Perl 6 is a toy language and there is no useful software written in it. If we want to keep that thinking, I propose that we pick a few end-user applications, document them well and show them off, on blogs or such
19:26 tadzik static blog engines, presentation generators, games, webservices, whatever
19:26 tadzik something people can look at, appreciate and say "okay, cool stuff in Perl 6"
19:26 masak a fine proposal. a big undertaking.
19:26 TimToady and throw 'em into the test suite too :)
19:26 PerlJam tadzik: sounds good, but we need to pick carefully at first so that we don't inadvertently make a marketing snafu by showing off how slow/broken/etc. a particular implementation is.
19:27 tadzik then maybe we could agree that it's not ready yet, instead of constantly telling everyone that it's good enough
19:27 tadzik ot
19:27 tadzik it's good for our own circle, but is it good enough for people in the outside world?
19:28 TimToady (not serious about test suite idea, btw, since it would introduce unwanted deps)
19:29 * TimToady thinks the killer apps will mostly happen naturally, and not have to be forced (much) when the time is (almost) right
19:29 TimToady the question is whether the time is (almost) right
19:29 tadzik yep
19:29 masak tadzik: it's not good enough for the general public. it's good enough for people who like pain and are prepared to spend time RT-scattered-FM. between those two endpoints, there are shades of gray.
19:29 PerlJam Hmm.  a "marketing app" doesn't have to be a "killer app"
19:30 masak true.
19:30 TimToady I view the RC entries as marketing apps
19:30 tadzik I'd like to bring an example of what we did with masak++ on the yapc
19:30 PerlJam except they tend to obscurity a little bit.
19:30 masak RC programs are more scripts than apps, to the extent there's a difference.
19:31 TimToady crawl --> walk --> run
19:31 masak aye.
19:31 TimToady we're looking for walking apps now :)
19:31 tadzik we made a talk about Little Animal Farm, didn't say a word about Perl 6, we just "accidentally" showed a piece of code that was Perl 6 code. To show that it's not that we wrote that in Perl 6 just to write something in Perl 6, but that we chose our implementation language to be Perl 6. Not sure if that did the job, but the idea was to make a listener think "oh, so they're using Perl 6 for that" after
19:31 tadzik they got interested in the project itself
19:32 PerlJam Apps where I think Perl 6 can make a good showing (any implementation):   presentation software, games, data processsing (as long as it doesn't have a hard time constraint)
19:33 PerlJam that last one would emphasize expressivity over speed
19:33 TimToady games tend toward showing off parallel processing, eventually
19:33 TimToady assuming we'll have a good story on that someday
19:34 colomon tadzik++ masak++
19:34 PerlJam Also, we can cheat a little bit and use Perl 6 for driving the game, but something else for speed-critical parts :)
19:34 TimToady there's also the domain of being a better Java than Java
19:34 TimToady but we're not quite there yet
19:34 masak I've been toying with the idea of using Perl 6 to generate code for some JS framework. that way, we could both show off Perl 6 and reap all the benefits of the browser.
19:35 PerlJam A service that translates Perl 6 into JS would be interesting  :)
19:36 TimToady esp if it can manage to translate p6 optmizability into js optimizability
19:36 mberends most users I meet in training land use p5 for parsing text formatted log files, p6 can usually do that more nicely.
19:36 PerlJam yep
19:37 TimToady (maybe they can be complementary optimizabilities though...)
19:37 TimToady yes, the p5 turf is rather more...fraught... though
19:37 TimToady but eventually we'll need to show how p6 is a better p5
19:38 TimToady really the only thing standing in the way of that currently is speed, and CPANishness
19:38 moritz or maybe show how p6 is a better $something_completely_different
19:38 TimToady *things
19:38 PerlJam moritz: like what?
19:38 TimToady that probably takes someone out of left field to come up with the idea
19:38 tadzik jnthn: the current limitation of blizkost is not-handling arrays and hashes, si?
19:39 PerlJam TimToady: Where's Damian when you need him?  ;)
19:39 moritz PerlJam: no idea really. Ruby maybe :-)
19:39 TimToady we don't know where our RoR will come from
19:39 TimToady it will come, but we have to get the right person to fall in love with P6 first
19:40 TimToady using RoR as a category, not as a specific example here...
19:40 tadzik Perl on Planes!
19:40 masak Six on Snails!
19:41 tadzik yeah, we have that
19:41 jnthn tadzik: Not sure off hand.
19:41 TimToady then there's the python approach, which eschews killer apps, in favor of getting organizations to fall in love with you
19:41 jnthn tadzik: I didn't look  at it for a while.
19:41 TimToady it's too easy to think that a killer app will be a silver bullet
19:41 PerlJam But as far as that goes, RoR not only had the right people, but some good timing and a couple of people wandering around to conferences telling anyone who would listen how they did awesome things with this little framework they put together.
19:41 TimToady that's a mixed metaphor that almost works...
19:42 TimToady yes, but basically RoR was a second-order effect, not predictable in specific by the first-order devs
19:43 TimToady we're in the "if you build it, they will come" spot
19:44 TimToady at the moment we're still in the more subversive stages, where we need to infest existing niches and say "here's how you do it in Xbol, but in Perl 6 it woudl be like this"
19:45 TimToady it's almost certain that the person/persons who will do the killer apps are currently programming in something else right now
19:45 PerlJam well  ... and find new niches that others may have overlooked because the technologies available at the time weren't up to the task.
19:46 TimToady I'm fine if we find the new niches ourselves, but I'm just saying we don't have to rely on that.
19:47 TimToady we really just need to find an area with a large false vacuum, and then flick the first domino
19:48 TimToady now there's a mixed metaphor
19:48 * TimToady almost typed meatphor...
19:48 TimToady anyway, sorry (a little) for hijacking the discussion; pray continue
19:50 mberends studying multi-core, parallelism etc, p6 has the potential to pull ahead there, but the implementations will need lots of work (lock-free data etc)
19:50 colomon I still think the first killer app is most likely to be something grammar-heavy...
19:50 PerlJam I wonder if rakudo and niecza could be made to play nicely together ...
19:51 moritz PerlJam: what kind of "play nicely together" do you mean?
19:52 PerlJam I can see a future where niecza wins the race to async IO, threading, etc.  (I could be completely wrong, but for the moment assume I'm not :).   In that future I'd want to use Rakudo for some parts of my code and Niecza for other parts.
19:53 TimToady colomon: in particular it needs to be something that relies on extensible grammars, because we won't win on speed in the near future wrt grammars, until we understand how to optimize them better
19:54 TimToady as in the way RoR won on extensibility, not speed
19:54 PerlJam TimToady: even still ... it'd have to be something Perl 6 could beat *Perl 5* at I think.
19:55 PerlJam Perl 5 has gotten lots of niceties and continues to get better and better
19:55 TimToady it probably suffices to be 90% as fast and 90% less crufty
19:56 tadzik and having CPAN
19:56 TimToady since p5 tends toward 10% slower and 10% cruftier
19:56 PerlJam tadzik: that's a big one.  Perl 6 not really having CPAN seems to quell people's desire to try Perl 6 "for real"
19:57 masak when porting the dlx-simple app from Perl 5 to Perl 6 the other week, I felt something new: basically, "wow, Perl 6 is made basically by removing cruft from the Perl 5!" I think workarounds have been too much in the way before, but now it's really evident.
19:57 moritz let's focus on what we need to do to enable more people to develop on Perl 6
19:58 moritz speed, CPAN, calling C code come to mind
19:58 moritz documentation
19:58 PerlJam aye, all of those
19:58 masak integration with Perl 5 in general.
19:58 tadzik blizkost :)
19:58 PerlJam masak: that would be quick way to CPAN if we could get it done well.
19:58 masak PerlJam: exactly.
19:58 tadzik we "only" need arrays and hashes in it :P
19:59 masak and callbacks.
19:59 tadzik right
19:59 moritz callbacks worked, last I looked
19:59 masak maybe we won't really have good integration with Perl 5 until we have Perl 5 on Parrot...
19:59 masak moritz: oh wow!
19:59 tadzik masak: blizkost is some sort of Perl 5 on parrot
19:59 tadzik reimplementing Perl 5 on Parrot will take another 11 years
19:59 masak no, it won't.
19:59 moritz it will take longer
20:00 moritz considering that perl 5 also changes
20:00 TimToady depends on how bug compatible you want to be
20:00 tadzik it's like with achilles and the turtle ;)
20:00 PerlJam tadzik: which one are we? ;)
20:00 tadzik when achilles runs slower
20:00 colomon I keep thinking p6 on .NET might be a killer thing for some developers -- it's something no one expects p5 to ever be able to do.
20:00 masak +1
20:01 TimToady or on jvm
20:01 jnthn s/or/and :-)
20:01 jnthn .oO( well volunteered! )
20:01 TimToady or on Go :)
20:01 tadzik and Perl 6 being a bridge between the two. Imagine those books: "Simple Perl 6 for Java programmers"
20:03 PerlJam For some reason when I glanced at my screen quickly I saw "and Perl 6 being a kludge between the two"
20:03 TimToady well, we've done a lot of vision-casting, but I think moritz++ wants to know "what's next?"
20:03 mberends should we all try Padre to help make it a better P6 marketing tool?
20:04 * PerlJam is using Padre right now
20:04 PerlJam (for Perl 5 code though)
20:06 * mberends hopes lichtkind++ does not backlog and get offended ;) *cough*Kephra*
20:07 * TimToady gut feeling is that we're ready to expand more but we're not ready to go "inflationary"
20:07 PerlJam TimToady: agreed.
20:07 masak nod
20:07 PerlJam TimToady: I don't think we're be ready for a big bang until we have at least one "fast" implementation.
20:08 masak let's wait and see where the nom inliner/optimizer puts us.
20:10 diakopter joined #phasers
20:11 mberends o/ diakopter
20:11 diakopter o
20:11 diakopter DID: some filetests for niecza. EOR.
20:11 tadzik oh, q1q
20:12 moritz tadzik: go ahead
20:12 tadzik okay, I'm wondering about the best way to handle --doc=foo
20:13 tadzik in the ideal world, we do --doc=html and the compiler magically turns it into DOC INIT { use Pod::To::HTML; pod2html($=POD) }
20:16 TimToady --doc=html kinda looks like an alternate setting to me
20:16 masak well, a doc-setting.
20:21 moritz tadzik: maybe for not-yet-registered types you'd need to do the equivalent of  perl6 -MPod::To::Foo  --doc=foo  file.pl
20:22 tadzik moritz: but what would DOC INIT call then?
20:22 tadzik eval "pod2{%COMPILING<doc>}()"?
20:23 moritz there might be %COMPILING<doc><translator>{'foo'} or so which Pod::To::Foo populates
20:24 tadzik I imagine --doc=html as something which will require "Pod::To::html"; and call something on it
20:24 tadzik maybe we should have Pod::To::modules have a common format() sub, not exported.
20:24 tadzik Then we're down to loading the module and calling a well-known sub from it
20:24 tadzik (our sub)
20:40 mberends Making one sub transform the entire parsed Pod tree looks like a hard job for the translator developer. It might be easier to provide a default base class with default multi methods for different elements, merely rendering plain text, and let the developer override only the bits that need customization.
20:41 masak fwiw, ASTs map very well to multi methods.
20:41 tadzik but from the user's POV you only want one visible sub anyway, don't you>
20:44 mberends one sub called format($Pod-Ast) spits out the entire rendered document, but is an unwieldy container for potentially many fiddly details.
20:46 tadzik having something smart under the hood is not a bad idea, I'm now thinking of a compiler-formatter interface
20:48 mberends this is probably the kind of thing whose structure reveals itself to you as you implement it in stages...

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