weekly Perl 6 status meetings with phase transitions: Wed 17:30 UTC | IR clogs at irclog.perlgeek.de/phasers/today
Set by moderator on 14 February 2012.
05:12 birdwindupbird joined 05:33 sorear joined 06:05 birdwindupbird joined 07:35 fsergot joined 09:25 fsergot joined 09:41 jnthn joined 10:39 birdwind1pbird joined 10:50 birdwind1pbird joined
jnthn Will probably miss #phasers; what I did this week: 12:03
NQP
* Started getting the serialization integrated into NQP
* It now successfully serializes/deserializes the first couple of compilation units
* Refactord various bits of symbol handling so it's done in World, not Actions/Grammar
* Eliminated the NQPMultiSig PMC, now we just have a plain old object for that
Rakudo
* Made xx thunk its LHS
* :state/:constant/:our in regexes 12:04
* Fixed handling of self scoping in attriubte initializers
* Greatly improved performance of the reduction meta-op
* Fixed cloning things with attributes from roles
* Fixed a bug in "but True"/"but False"
* Got moritz++'s work on object hashes incorporated into Rakudo's Hash type
* Implemented the my %h{Int} syntax
Next up...
* Refactor the way NQP handles multis
* More work on the serialization, hopefully get all of the NQP build to work with it
* Probably more bug fixes and minor features in Rakudo
EOR
17:24 isBEKaml joined
moritz my #phasers report 17:24
* 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
* Implemented Rat (before we only had FatRat, disguised as Rat) and Rat -> Num fallback
* implemented clever-ish FatRat numification
* prototyped and tested object hashes 17:26
* fixed file name reporting for -e one-liners
* file name reporting for evals 17:27
* more typed exceptions
* 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
plans:
* investigate sink, toying with a compiler pass that adds &sink calls 17:29
* more typed exceptions
EOR
PerlJam not much phasing going on 17:34
moritz I guess jnthn++ is traveling 17:35
17:37 colomon joined
colomon o/ 17:37
sorry I'm late
PerlJam colomon: not much happening, so your lateness is the height of excitement :) 17:39
colomon :)
report: (I forget what I've managed to report here lately, so will just touch on highlights)
* Set, KeySet, Bag, and KeyBag working in niecza
* wrote lots of tests for them; now working on set operator tests 17:40
* Completely ported panda to niecza
* Ported Email::Simple to niecza (at least well enough so that the three tests it has work)
plan: 17:41
* More set operator tests
* More work getting modules working on niecza
EOR
isBEKaml moritz++ 17:42
jnthn++ colomon++
speaking of porting, isn't the ultimate goal to keep code running between implementations with little/no changes?
And, where do niecza ported modules reside currently? 17:43
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
(or also known to not work with)
colomon isBEKaml: yes, having modules work on both is certainly a valid and useful goal 17:46
and quite a few modules do indeed work seamlessly on both compilers already 17:47
panda-niecza is at github.com/colomon/panda
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. :)
PerlJam isBEKaml: Well ... the "burden" could be on an automated system rather than humans at all. 17:49
(except for the burden of the humans to build the system :)
TimToady
.oO(Write once, run...somewhere...)
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
I have proposed adding automatically generated columns to modules.perl6.org saying whether the modules instll with the latest rakudo / niecza.
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 :)
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. :)
TimToady the ideal is that Perl 6 be the same language everywhere 17:52
lack of convergence isn't a feature we should advertise :) 17:53
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)
isBEKaml TimToady: Exactly! 17:55
colomon In general, you can find plenty of implementation shortcomings AND bugs in modules. 18:00
For instance, I've run into more than a few modules using obsolete features than niecza doesn't support, like "plan *" 18:01
18:02 diakopter joined 18:03 diakopter left
colomon The most recent thing I ran into in Email::Simple: class Blah is Array { method Str ... }; Blah.new(@array) 18:03
that apparently works in rakudo, but not in niecza. Is that behavior actually spec?
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:07
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:27
colomon sure, *something* like that is needed. but that's not the same as "this is spec'd behavior you are not implementing". 18:29
moritz right; we need to spec that. 18:31
colomon actually, in general, how are you supposed to initialize your parent inp6? 18:32
*in p6?
moritz well, the parent is supposed to initialize itself 18:34
which is why the parent needs a .new method 18:35
colomon my $pet = Dog.new( :name<Fido>, Animal{ :blood<warm>, :legs(4) } );
if Dog is Animal
moritz to which you can delegate in case of doubt
19:06 birdwindupbird joined 19:56 isBEKaml left