Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2012-02-15

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

All times shown according to UTC.

Time Nick Message
05:12 birdwindupbird joined #phasers
05:33 sorear joined #phasers
06:05 birdwindupbird joined #phasers
07:35 fsergot joined #phasers
09:25 fsergot joined #phasers
09:41 jnthn joined #phasers
10:39 birdwind1pbird joined #phasers
10:50 birdwind1pbird joined #phasers
12:03 jnthn Will probably miss #phasers; what I did this week:
12:03 jnthn NQP
12:03 jnthn * Started getting the serialization integrated into NQP
12:03 jnthn * It now successfully serializes/deserializes the first couple of compilation units
12:03 jnthn * Refactord various bits of symbol handling so it's done in World, not Actions/Grammar
12:03 jnthn * Eliminated the NQPMultiSig PMC, now we just have a plain old object for that
12:03 jnthn Rakudo
12:03 jnthn * Made xx thunk its LHS
12:04 jnthn * :state/:constant/:our in regexes
12:04 jnthn * Fixed handling of self scoping in attriubte initializers
12:04 jnthn * Greatly improved performance of the reduction meta-op
12:04 jnthn * Fixed cloning things with attributes from roles
12:04 jnthn * Fixed a bug in "but True"/"but False"
12:04 jnthn * Got moritz++'s work on object hashes incorporated into Rakudo's Hash type
12:04 jnthn * Implemented the my %h{Int} syntax
12:04 jnthn Next up...
12:04 jnthn * Refactor the way NQP handles multis
12:04 jnthn * More work on the serialization, hopefully get all of the NQP build to work with it
12:04 jnthn * Probably more bug fixes and minor features in Rakudo
12:04 jnthn EOR
17:24 isBEKaml joined #phasers
17:24 moritz my #phasers report
17:25 moritz * lots of backtrace hacking. It's not perfect, and I haven't gotten much feedback yet, but I think it's much better than before
17:25 moritz * Implemented Rat (before we only had FatRat, disguised as Rat) and Rat -> Num fallback
17:25 moritz * implemented clever-ish FatRat numification
17:26 moritz * prototyped and tested object hashes
17:26 moritz * fixed file name reporting for -e one-liners
17:27 moritz * file name reporting for evals
17:27 moritz * more typed exceptions
17:28 moritz * refactored exception base types. The only base type is now Exception, and die() with non-Exception arguments produce an X::AdHoc object, with .payload returning excactly what was passed to &die
17:28 moritz plans:
17:29 moritz * investigate sink, toying with a compiler pass that adds &sink calls
17:29 moritz * more typed exceptions
17:29 moritz EOR
17:34 PerlJam not much phasing going on
17:35 moritz I guess jnthn++ is traveling
17:37 colomon joined #phasers
17:37 colomon o/
17:37 colomon sorry I'm late
17:39 PerlJam colomon: not much happening, so your lateness is the height of excitement :)
17:39 colomon :)
17:39 colomon report: (I forget what I've managed to report here lately, so will just touch on highlights)
17:39 colomon * Set, KeySet, Bag, and KeyBag working in niecza
17:40 colomon * wrote lots of tests for them; now working on set operator tests
17:40 colomon * Completely ported panda to niecza
17:40 colomon * Ported Email::Simple to niecza (at least well enough so that the three tests it has work)
17:41 colomon plan:
17:41 colomon * More set operator tests
17:41 colomon * More work getting modules working on niecza
17:41 colomon EOR
17:42 isBEKaml moritz++
17:42 isBEKaml jnthn++ colomon++
17:42 isBEKaml speaking of porting, isn't the ultimate goal to keep code running between implementations with little/no changes?
17:43 isBEKaml And, where do niecza ported modules reside currently?
17:45 PerlJam It would be nice if modules' META.info had some indication of which implementations of Perl 6 they are known to work with.
17:45 PerlJam (or also known to not work with)
17:46 colomon isBEKaml: yes, having modules work on both is certainly a valid and useful goal
17:47 colomon and quite a few modules do indeed work seamlessly on both compilers already
17:47 colomon panda-niecza is at https://github.com/colomon/panda
17:47 isBEKaml PerlJam: Generally, I'm against that idea. I prefer that language impose heavy portability burden on module writers than having users figure them out. That said, I can live with ported code between implementations for now. :)
17:49 PerlJam isBEKaml: Well ... the "burden" could be on an automated system rather than humans at all.
17:49 PerlJam (except for the burden of the humans to build the system :)
17:49 TimToady .oO(Write once, run...somewhere...)
17:50 colomon In general, given panda / panda-niecza, figuring out if a module works for your compiler only takes a minute or so, and that tracks reality more closely than having something in META.info would.
17:50 colomon I have proposed adding automatically generated columns to modules.perl6.org saying whether the modules instll with the latest rakudo / niecza.
17:51 colomon I think that would be helpful to users and help spur module implementors to make their stuff more portable.
17:51 TimToady add 'em on the end of the features matrix to motivate the implementors :)
17:51 isBEKaml PerlJam: I don't know if I put that right - the "burden" of portability resides with module writers. That is, module writers are responsible to make sure that their code can work portably across multiple implementations. :)
17:52 TimToady the ideal is that Perl 6 be the same language everywhere
17:53 TimToady lack of convergence isn't a feature we should advertise :)
17:54 isBEKaml colomon: IIRC, most of p6 modules are self sufficient and do not have many dependencies. If that's the case, it's easy to put it all on the user. What about the multi-dependency, multi-module  scenario?
17:54 TimToady the matrix should be viewed as bugs in implementations, not bugs in modules (unless they're depending on bugs of the implemenation)
17:55 isBEKaml TimToady: Exactly!
18:00 colomon In general, you can find plenty of implementation shortcomings AND bugs in modules.
18:01 colomon For instance, I've run into more than a few modules using obsolete features than niecza doesn't support, like "plan *"
18:02 diakopter joined #phasers
18:03 diakopter left #phasers
18:03 colomon The most recent thing I ran into in Email::Simple: class Blah is Array { method Str ... }; Blah.new(@array)
18:03 colomon that apparently works in rakudo, but not in niecza.  Is that behavior actually spec?
18:07 colomon regardless, that gives an idea of the sort of issue the module porter faces.  some things are clearly faults in the module.  some things are clearly faults with the compiler.  and some things are somewhere in between, and knowing what is "right" can be very tricky.
18:27 moritz colomon: I think Array.new is not specced, but something like that is necessary if you want to be able to subclass and initialize the parent
18:29 colomon sure, *something* like that is needed.  but that's not the same as "this is spec'd behavior you are not implementing".
18:31 moritz right; we need to spec that.
18:32 colomon actually, in general, how are you supposed to initialize your parent inp6?
18:32 colomon *in p6?
18:34 moritz well, the parent is supposed to initialize itself
18:35 moritz which is why the parent needs a .new method
18:35 colomon my $pet = Dog.new( :name<Fido>, Animal{ :blood<warm>, :legs(4) } );
18:35 colomon if Dog is Animal
18:35 moritz to which you can delegate in case of doubt
19:06 birdwindupbird joined #phasers
19:56 isBEKaml left #phasers

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