Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2011-06-14

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

All times shown according to UTC.

Time Nick Message
10:10 _ilbot joined #phasers
10:10 Topic for #phasers is now weekly Rakudo status meetings with phase transitions: Tue 19:00 UTC | IR clogs at http://irclog.perlgeek.de/phasers/today
11:35 _ilbot joined #phasers
11:35 Topic for #phasers is now weekly Rakudo status meetings with phase transitions: Tue 19:00 UTC | IR clogs at http://irclog.perlgeek.de/phasers/today
16:50 mikehh joined #phasers
17:17 pmichaud joined #phasers
17:23 mberends joined #phasers
18:10 pmichaud Here's my pre-report:
18:10 pmichaud What I did:
18:10 pmichaud nom stuff:
18:10 pmichaud * Completed rework of nom and nqp Configure.pl systems
18:10 pmichaud → moved build/ to tools/build/, reduced number of scripts needed
18:10 pmichaud → added config.default for specifying default option values
18:10 pmichaud → --gen-parrot and --gen-parrot now accept branch identifiers
18:10 pmichaud → common NQP::Configure library
18:11 pmichaud → Configure.pl can be easily parameterized for use by other nqp-based langs
18:11 pmichaud * Added List, Array, Parcel, and Hash, postcircumfix:<[ ]>, postcircumfix:<{ }>, infix:<,>
18:11 pmichaud * Added Numeric and Real types (classes for now, will switch to roles when we can)
18:11 pmichaud * Added &return and &return-rw  (both do &return-rw for now)
18:11 pmichaud * Worked on array/hash autovivification
18:11 pmichaud * Cleaned up register allocation.  CORE.setting.pir now compiles in 2s instead of 50s on my system.
18:11 pmichaud * Updated Bool methods and prefix:<?>
18:11 pmichaud * Worked out Str vs Stringy implementation
18:11 pmichaud * Worked on preliminary gather/take implementation
18:11 pmichaud * Fixed variable interpolation in strings
18:11 pmichaud * Split out Perl6::Compiler, added --version option to nom
18:11 pmichaud * Eliminated the final .pir file from nom.
18:11 pmichaud nqp stuff:
18:11 pmichaud * Fixed 6model attribute binding
18:11 pmichaud * Updated Configure.pl system (see entry under rakudo Configure.pl above)
18:11 pmichaud * Cleaned up register allocation.
18:11 pmichaud * Added pir::const::* symbolic constants
18:11 pmichaud * Automatically add common ".include 'foo.pasm'" directives to output
18:11 pmichaud * Future-proofing: regex codegen now uses .CCLASS_* symbols instead of numeric equivalent
18:11 pmichaud * Fixed PAST to be able to handle binding of native I/N/S types
18:11 pmichaud * Restored the --combine flag for HLL::Compiler
18:11 pmichaud master stuff:
18:11 pmichaud * Fixed my @t; @t[0][2] = @t[0][0] = 9  assignment
18:12 pmichaud * Worked on some zavolaj test files and bugfixes
18:12 pmichaud * Improved register allocation.  40% improvement in t/spec/S05-mass/rx.t (YMMV)
18:12 pmichaud * More benchmark timings against recent parrots
18:12 pmichaud parrot stuff:
18:12 pmichaud * Added PAST::Stmt to encapsulate temporary register allocations
18:12 pmichaud * Added :childorder to allow specifying the order of child node evaluation
18:12 pmichaud * Improved the ability for PAST::Val to remain constants in output
18:12 pmichaud * Fixed a string bug in
18:12 pmichaud nqp-rx stuff:
18:12 pmichaud * Improved register allocation
18:12 pmichaud What I plan to do:
18:12 pmichaud * Finish List, Array, Hash, Iterator, Iterable
18:12 pmichaud * Implement Range, gather/take, map, LoL
18:12 pmichaud * Add pir::const:: to nqp-rx, nom, and (maybe) master
18:12 pmichaud * Work on S07 redraft
18:12 pmichaud EOR
18:12 moritz pmichaud++
18:12 moritz pmichaud++
18:12 moritz pmichaud++
18:12 mberends wow, pmichaud++
18:14 tadzik oh wow. So great to see you back in action. pmichaud++
18:14 moritz my pre-report (not pre typed, so slow):
18:14 pmichaud that last parrot item is supposed to be "* Fixed a string bug in NCI::Utils::ncifunc
18:15 benabik joined #phasers
18:15 moritz + added various built-ins to nom, most notably Numeric stuff (Rat, Complex, numeric operators)
18:15 moritz + started to add classes/roles for exception stuff (but less than I hoped to do)
18:15 moritz + bugged jnthn++ about missing features, reported regressions in nom
18:16 moritz + fixed an lwp-simple bug
18:16 moritz .EOR
18:21 sorear DID:
18:21 sorear * optimized .new handling, calling of defaults is 10x faster
18:21 sorear * implemented basic use of submethod BUILD
18:21 sorear * implemented s:g
18:21 sorear * new small functions: Block.arity, sign, truncate, round, floor, ceiling, conjugate
18:21 sorear * Stole series op from Rakudo
18:21 sorear * fixed binding to @var
18:21 sorear * Immediate metamodel refactor: metaobjects are constructed during the parse now
18:21 sorear - Many crash-errors are now sorries
18:21 sorear - Switched to nom-like class stubbing
18:21 sorear - Many small improvements during refactor, like "also is rw" in blocks
18:21 sorear * Starting to gut $*CURLEX and create a single consistent model
18:21 sorear * Discussed the meaning of names in depth with jnthn
18:21 sorear WILL DO:
18:21 sorear * Finish gutting $*CURLEX
18:21 sorear * Fix bugs once that's done with
18:22 sorear * Use newfound insights to implement all the remaining cases of qualified names
18:22 sorear EOR
18:23 moritz sorear++
18:25 mberends indeed, sorear++
18:25 mberends so, my report:
18:26 mberends * found out which Parrot NCI signature was broken in Zavolaj and MiniDBI.
18:28 mberends * almost completed a biggish-int library that, with a little more work, could provide Integer functionality for NQP.
18:28 mberends (https://github.com/jnthn/zavolaj/blob/master/examples/biggishint.c)
18:29 mberends .eor
18:29 tadzik moritz++ sorear++ mberends++
18:29 PerlJam my pre-report:
18:29 PerlJam * did absolutely nothing but talk on #perl6 and occasionally watch everyone else do awesome things.
18:30 PerlJam .eor   :-)
18:30 mberends PerlJam += 0.5 ?
18:30 tadzik so I'll pre-report to, it looks fashionable
18:31 tadzik did: gsoc week #3, everything done, mentors happy
18:31 tadzik fixed some spec typos and thinkos
18:32 tadzik a little bit of nom hacking
18:32 tadzik ...passed every exam I could, 2 finals ahead
18:32 tadzik =end report
18:33 tadzik =for plans
18:34 tadzik pass the finals, mail Damian Conway about the spec doubts
18:34 tadzik
18:34 PerlJam tadzik: cc'd to perl6-language too?
18:35 tadzik I can
18:37 pmichaud I wouldn't cc.
18:37 pmichaud Two separate messages, maybe.
18:46 mberends pmichaud: how well does rakudo hacking currently mix with pressure from other home and work responsibilities? We care a lot about your afk life.
18:47 moritz I might miss #phasers, because we'll by trying to feed Ronja some semi-solid food for the first time... no idea how long that takes :-)
18:47 tadzik is there much sense in maintaining gsoc-podparser on nom rather than on master?
18:47 moritz if my continued abasense from #phasers is a problem for anybody, I can look for other solutions
18:48 PerlJam tadzik: I bet nom is master by the end of the summer, so you'll have to cross that bridge at some point I think.
18:48 moritz he doesn't have to
18:48 moritz it would be nice, but it's not required
18:48 tadzik I don't think I'll need a full spec-complete implementation
18:49 tadzik oh, this way, I get it
18:49 tadzik my point is that nom is even quite usable right now, and I'm not sure if it's not suitable for the pod parser at the moment of speaking
18:50 tadzik and working around the lack of serialization in master might be not worth the effort, especially if it would have been reimplemented anyway
18:50 PerlJam moritz: not required, but ...  I'd hate to see it languish and IMHO the surest way to prevent that is to make sure the code is merged into whatever the master branch is/will be.
18:50 tadzik what's best for Rakudo? I don't need to go the easiest way
18:50 moritz iirc nom doesn't do any regexes yet
18:50 tadzik they work in the parser, that's what I need
18:52 mberends tadzik: I'd recommend staying on master for another month or so, just so that the nom developers can focus tightly on its critical path. Your work is kinda peripheral, and nom isn't at the peripheral stage yet.
18:52 * PerlJam concurs
18:54 tadzik mberends: the dangerously near part of the work is making the parse tree runtime-available. In master that means creating past nodes that will create the whole pod tree in runtime. In nom, that could *probably* be just building something and serializing it
18:54 pmichaud tadzik: you could work from a branch of nom, perhaps
18:54 pmichaud and then periodically sync with nom
18:54 mberends tadzik: you may ... pmichaud++ said it
18:54 tadzik I don't want the whole work to end up something that "worked in beta, but there's no one to port it", like these dozen of Parrot compiles basing on PGE or even older stuff
18:55 PerlJam tadzik++
18:55 tadzik pmichaud: yeah, that's my dillema: work from master or from nom
18:55 pmichaud tadzik: I think only you can answer that one.  I wouldn't want you to block on nom, though.
18:55 pmichaud and it's possible that could happen.
18:56 PerlJam gsoc has a fixed schedule, nom does not
18:56 pmichaud master is relatively stable and a known working quantity (fsvo "working").  nom is a bit more unpredictable.
18:56 tadzik in theory I have 3 weeks to start working on the serialization stuff, nom may be far more ready for it then
18:57 pmichaud will you be blocking on serialization before then?
18:57 tadzik I don't think so, unless I'll have too much time in between the finals and will start experimenting. But nothing mission critical for sure
18:57 pmichaud also, keep in mind that nom development may slow again soon, as Perl workshops come into play
18:58 pmichaud NPW is this Saturday, and I believe FPW is the following weekend, so there may be less nom progress than "normal"
18:58 pmichaud (or it may be "normal" and not accelerated like the last couple of weeks have been)
18:58 tadzik right
19:00 colomon joined #phasers
19:00 colomon o/
19:00 sorear o/
19:00 Util o/
19:00 tadzik o/
19:01 pmichaud anyway, either choice is valid... if you go with nom, be sure to have a strategy if nom isn't up to whatever you need from it based on your schedule constraints
19:01 pmichaud good afternoon, everyone.  Welcome to #phasers, today is June 14 at 19:01 UTC.
19:01 pmichaud (translate "afternoon" to your localtime as appropriate)
19:02 mberends q1q
19:02 Util q1report
19:02 pmichaud Util: report please :)
19:03 Util New RC Perl 6 solutions:
19:03 Util http://rosettacode.org/wiki/Euler_method
19:03 Util http://rosettacode.org/wiki/Caesar_cipher
19:03 Util http://rosettacode.org/wiki/Draw_a_cuboid
19:03 Util http://rosettacode.org/wiki/Unbias_a_random_generator
19:03 Util http://rosettacode.org/wiki/Non-continuous_subsequences
19:03 Util http://rosettacode.org/wiki/Strip_a_set_of_characters_from_a_string
19:03 Util http://rosettacode.org/wiki/Kaprekar_numbers
19:03 Util http://rosettacode.org/wiki/Convert_decimal_number
19:03 Util Improved:
19:03 Util http://rosettacode.org/wiki/Spiral_matrix
19:03 Util http://rosettacode.org/wiki/Sierpinski_carpet
19:03 Util http://rosettacode.org/wiki/Matrix_transposition
19:03 Util # Plan to do: $WORK
19:03 Util EOR
19:03 pmichaud wow!  Util++
19:03 colomon Util++
19:04 * Util plans RC lightning talk at YAPC::NA
19:04 pmichaud Util: any reactions about p6 or rakudo after having written these and other solutions?
19:04 colomon I've been pondering trying to do a sequences lightning talk at YAPC::NA.
19:04 pmichaud colomon: +1 to that
19:05 tadzik Util++, very nice, I have to read through that one day
19:06 Util I love Perl 6 more for each solution I write. I am also becoming aware/worried about item/list auto-defer distinctions that I cannot always resolve using just my brain; I must just try it to see which way somthing works.
19:07 moritz re
19:07 pmichaud since I'm writing the List synopsis I'll keep that in mind and see if we can make it clearer
19:07 Util Also, I need to turn my bug/wanted-to list into Rakudo bug reports and public wishlist items (for NYI features)
19:07 pmichaud Util: +1
19:07 Util munch vs. batch zapped me again this week; I just fell back to splice(0, $n)
19:07 pmichaud Util: also, wanted to make sure you knew that the  @t[0][2] = @t[0][0] = $x   bug seems to be fixed in Rakudo master
19:08 sorear pmichaud: how did you fix it?
19:08 Util pmichaud++
19:08 pmichaud sorear: evaluate the operands to infix:<=>  r-to-l
19:08 pmichaud (since it's right associative)
19:09 pmichaud anyone else have any reports to give?
19:09 sorear hmm
19:10 sorear interesting approach, but it'll require adding some kind of S, to niecza
19:10 pmichaud I had to add an option for it in PAST, yes.
19:10 pmichaud no other reports, so mberends had a q1q
19:10 mberends A few weeks ago we undertook to appoint two people to coordinate liaison with two people in Parrot. What has been done/needs to be done about that?
19:10 sorear q1q=?
19:10 tadzik queue one question
19:11 pmichaud mberends: good question
19:11 pmichaud mberends: I don't think we had a discussion/consensus yet.
19:11 pmichaud I propose   <pmichaud jnthn moritz>.pick(2)
19:12 lichtkind joined #phasers
19:13 pmichaud anyone feel that others should be added to the candidate set there?
19:14 mberends tadzik?
19:14 PerlJam nope  (jnthn and moritz were the first people I thought of before)
19:15 tadzik mberends: you mean me?
19:15 pmichaud tadzik: interested?
19:15 tadzik well, I don't mind volunteering, but I feel like there are people here who are more into the business than me
19:15 pmichaud okay:  I'll poll all(<pmichaud moritz jnthn tadzik>) and we'll grab our candidates from that set
19:16 mberends I think the people making the most commits to nom are somehow the most appropriate candidates.
19:16 pmichaud mberends: thanks for remembering that detail; it had slipped my mind
19:16 pmichaud mberends++
19:16 tadzik for the both sides. The point is for Rakudo to benefit, and for that we need deep understanding about what Rakudo needs from Parrot, and maybe how Parrot should do it
19:17 pmichaud jnthn doesn't appear to be present atm, so I'll work on this later today
19:17 pmichaud any other questions, comments, or reports?
19:18 tadzik pmichaud: did we get to anything regarding Select PMC?
19:18 pmichaud tadzik: I'll ping cotto about that.
19:18 pmichaud oh, wait, we did.  They had some design changes they wanted to see made, iirc.
19:18 tadzik yeah, he reviewed and posted his opinions
19:20 pmichaud I'll bump the ticket and see if we can get a decision (more)
19:20 pmichaud basically, the question will be "accept the proposed Select PMC as experimental" or "wait for a better implementation to come along".
19:20 tadzik we can poke that on #ps today
19:20 pmichaud we could also adopt the PMC into Rakudo (master) for the time being.
19:20 tadzik after all, this is something we want from Parrot
19:21 pmichaud Another very interesting might be to ask what you would want from select if we were to implement it in nqp/nom.  :-)
19:21 pmichaud *interesting question
19:21 tadzik hmm
19:21 pmichaud it wouldn't need to be a PMC then -- it could be a 6model object or library or something like that
19:21 tadzik we want async io, disregarding the details of implementation, methinks
19:22 tadzik int eresting;
19:22 pmichaud do you have a specific application/test in mind for async io?
19:22 sorear Have we decided on an API for async IO?
19:23 pmichaud No.
19:23 tadzik I think the Net::IRC module could benefit from that. I have no specific reasons for that, I just remember that the two most common things that people missed in Star were threads and async io
19:23 tadzik and speed of course
19:23 pmichaud Basically the consensus opinion is that we need to see use cases before trying to put together a spec
19:23 tadzik Star was almost a year ago, and we're nowhere near those things
19:24 pmichaud so IO in general (incl async IO) really wants people to prototype solutions that we can look at before trying to adopt something as a spec
19:24 tadzik true, history shows that :)
19:25 sorear pmichaud: I will take some initiative there
19:25 pmichaud anyway, it'd be interesting to (re-)write a Net::IRC or similar application.  Instead of asking "what API do I have", write it with the notion of "I can have any API I want"  :-)
19:25 pmichaud then we can prototype it in nqp, nom, or master  (and poke the parrot folks if we decide that's really the appropriate place)
19:25 tadzik we can steal ideas from some good Perl 5 solution
19:26 tadzik cpan is quite used to reimplementing ideas that people don't like in a less painful way
19:26 pmichaud but in general, custom PMCs in Parrot will end up simply being things we have to wrap up in some other object in nom.
19:27 pmichaud so maybe it's better to just do the work in nom directly, and to figure out how to do that.
19:27 pmichaud Same goes for NCI, btw.
19:27 pmichaud if we don't like Parrot's NCI interface, we still have the option of writing our own.  :)
19:28 pmichaud (and since 6model can have a much richer type system at the native level than Parrot offers, we can get it to be closer to what we want)
19:29 pmichaud anyway, that's the strategy I suggest for now.  But I'm open to whatever brings about progress.
19:29 mikehh pmichaud: I think that we need feedback in parrot as to what is needed, so that it can be incorporated there
19:30 mikehh if something does not work, then we need to fix it
19:30 pmichaud mikehh: I don't disagree in theory, but historical practice seems to indicate otherwise (e.g., the recent zavolaj breakage)
19:31 pmichaud too often "fix it" ends up meaning "break it in such a way as to make our life even harder than it was before"
19:31 mikehh although there are a lot of things going on there rakudo is still our principal customer
19:32 mikehh and trying to herd cats (or parrots) just ain't easy
19:32 pmichaud right... at some point I'd rather just solve the problem myself than try to herd parrot's cats :)
19:32 pmichaud s/myself/ourselves/
19:33 benabik I will also note that things implemented in 6model may migrate back to parrot.  There's a fair amount of interest there in adopting 6model into core.
19:33 pmichaud I'm not saying we won't work with parrot, of course we will.  I'm just saying I don't want to be blocked by that.
19:34 mikehh I yjink one of the reasons we need better liason is that rakudo's need are not always considered by the parrot devs
19:34 mikehh think
19:34 pmichaud benabik: (6model adoption)  yes, I expect that will eventually happen.  I doubt it will happen in 2011.
19:35 benabik pmichaud: Sad, but true.  But if rakudo starts writing a pile of NQP/6model libraries, that seems like it would add weight to the migration.
19:35 pmichaud I'm certain we'd keep the libraries separate.
19:36 pmichaud certainly well-bounded, at any rate.
19:36 pmichaud one should be able to adopt 6model without having to adopt everything built on top of it :)
19:36 pmichaud that's kind of the point of 6model :)
19:37 benabik pmichaud: Yes, but being able to say "hey, if we adopt 6model all this stuff is available to parrot" is nice.
19:37 pmichaud I agree fully
19:38 pmichaud anyway, for anyone that wants to work on it, async I/O would seem a fruitful area of exploration and it's entirely possible to look at doing it in nqp, master, or nom as well as creating a parrot solution.
19:38 * benabik re-lurks.
19:38 pmichaud and from a perl 6 perspective, niecza can be an excellent "help explore the spec" platform as well
19:39 pmichaud (i.e., "sorear initiative" +1)
19:39 pmichaud any other comments or questions?
19:40 * pmichaud leaves the microphone open for anyone that wants to pick it up.
19:40 * moritz sings a ballade
19:41 * moritz not a good singer
19:50 * tadzik doesn't sing good, but sings a lot
19:53 jnthn oops, sorry I missed phasers
19:54 jnthn $dayjob event lasted longer than expected, then trains were screwed up on way home :/
19:54 sorear \o/ jnthn
19:54 sorear count yourself lucky you have usable trains
19:54 jnthn sorear: I do. :)
19:55 jnthn sorear: I've just encountered really good usable trains and the less good ones grate a bit :)
19:55 sorear jnthn: I'm finding myself adding $/ parameters to most of the metamodel add_attribute and whatnot methods
19:55 jnthn sorear: eww.
19:55 jnthn That's gonna blow up the serialization graph
19:56 sorear no, I'm not storing that
19:56 jnthn Oh
19:56 sorear I'm just using it so they can call sorry
19:56 sorear (also, source position information)
19:56 jnthn OK. That sounds like the wrong factoring.
19:56 sorear I agree.
19:56 sorear That's why I'm talking to you about it.
19:56 jnthn Though I should probably ask what you're trying to do before criticising your approach. :)
19:56 * jnthn did enough criticism today :)
19:57 sorear at the very least, PackageHOW.add_attribute really wants to produce a SORRY!
19:57 sorear I'm also trying to move redeclaration error logic into add_my_name
19:58 jnthn Hmm. I'd hope your PackageHOW doesn't have an add_attribute.
19:58 jnthn Did you mean ClassHOW?
19:58 sorear right now, my PackageHOW has an add_attribute that throws an exception
19:58 jnthn Oh.
19:59 jnthn I don't like that apporach.
19:59 sorear because "Cannot find method add_attribute" is very very LTA
19:59 jnthn Yes, and that's why we don't give that in Rakudo. :)
20:00 jnthn You just do .^can on the meta-object.
20:00 jnthn If it can't, you report a nice, helpful error.
20:01 sorear see #perl6
20:01 sorear I want to have source location on that
20:01 jnthn Sure
20:01 sorear ideally, integrated into the SORRY/$*FATALS system
20:01 jnthn So try/CATCH around the meta-method call.
20:01 jnthn And then SORRY in CATCH
20:01 sorear ew
20:02 jnthn Well, it's a bunch better than what you're suggesting.
20:02 jnthn There's not very many declarators.
20:02 jnthn Need to think about the meta-programmer.
20:03 jnthn Making them write a bunch of methods that throw exceptions for things they don't want to support is a sub-optimal meta-programming experience.
20:03 jnthn Plus it's easy to write a generic thing that does CATCH -> SORRY
20:03 jnthn And pass a closure to it.
20:04 jnthn That's probably how I'll factor it in nom.
20:39 Topic for #phasers is now weekly Perl 6 status meetings with phase transitions: Tue 19:00 UTC | IR clogs at http://irclog.perlgeek.de/phasers/today
20:51 [particle] left #phasers
21:03 [particle] joined #phasers
22:10 benabik left #phasers
22:13 lichtkind left #phasers
22:32 mberends left #phasers
22:34 mberends joined #phasers
22:38 mberends left #phasers
23:54 [particle] left #phasers
23:54 [particle] joined #phasers

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