weekly Rakudo status meetings with phase transitions: Tue 19:00 UTC | IR clogs at irclog.perlgeek.de/phasers/today
Set by moderator on 26 April 2011.
10:10 _ilbot joined
moderator weekly Rakudo status meetings with phase transitions: Tue 19:00 UTC | IR clogs at irclog.perlgeek.de/phasers/today
11:35 _ilbot joined
moderator weekly Rakudo status meetings with phase transitions: Tue 19:00 UTC | IR clogs at irclog.perlgeek.de/phasers/today
16:50 mikehh joined 17:17 pmichaud joined 17:23 mberends joined
pmichaud Here's my pre-report: 18:10
What I did:
nom stuff:
* Completed rework of nom and nqp Configure.pl systems
→ moved build/ to tools/build/, reduced number of scripts needed
→ added config.default for specifying default option values
→ --gen-parrot and --gen-parrot now accept branch identifiers
→ common NQP::Configure library
→ Configure.pl can be easily parameterized for use by other nqp-based langs 18:11
* Added List, Array, Parcel, and Hash, postcircumfix:<[ ]>, postcircumfix:<{ }>, infix:<,>
* Added Numeric and Real types (classes for now, will switch to roles when we can)
* Added &return and &return-rw (both do &return-rw for now)
* Worked on array/hash autovivification
* Cleaned up register allocation. CORE.setting.pir now compiles in 2s instead of 50s on my system.
* Updated Bool methods and prefix:<?>
* Worked out Str vs Stringy implementation
* Worked on preliminary gather/take implementation
* Fixed variable interpolation in strings
* Split out Perl6::Compiler, added --version option to nom
* Eliminated the final .pir file from nom.
nqp stuff:
* Fixed 6model attribute binding
* Updated Configure.pl system (see entry under rakudo Configure.pl above)
* Cleaned up register allocation.
* Added pir::const::* symbolic constants
* Automatically add common ".include 'foo.pasm'" directives to output
* Future-proofing: regex codegen now uses .CCLASS_* symbols instead of numeric equivalent
* Fixed PAST to be able to handle binding of native I/N/S types
* Restored the --combine flag for HLL::Compiler
master stuff:
* Fixed my @t; @t[0][2] = @t[0][0] = 9 assignment
* Worked on some zavolaj test files and bugfixes 18:12
* Improved register allocation. 40% improvement in t/spec/S05-mass/rx.t (YMMV)
* More benchmark timings against recent parrots
parrot stuff:
* Added PAST::Stmt to encapsulate temporary register allocations
* Added :childorder to allow specifying the order of child node evaluation
* Improved the ability for PAST::Val to remain constants in output
* Fixed a string bug in
nqp-rx stuff:
* Improved register allocation
What I plan to do:
* Finish List, Array, Hash, Iterator, Iterable
* Implement Range, gather/take, map, LoL
* Add pir::const:: to nqp-rx, nom, and (maybe) master
* Work on S07 redraft
EOR
moritz pmichaud++
mberends wow, pmichaud++
tadzik oh wow. So great to see you back in action. pmichaud++ 18:14
moritz my pre-report (not pre typed, so slow):
pmichaud that last parrot item is supposed to be "* Fixed a string bug in NCI::Utils::ncifunc
18:15 benabik joined
moritz + added various built-ins to nom, most notably Numeric stuff (Rat, Complex, numeric operators) 18:15
+ started to add classes/roles for exception stuff (but less than I hoped to do)
+ bugged jnthn++ about missing features, reported regressions in nom
+ fixed an lwp-simple bug 18:16
.EOR
sorear DID: 18:21
* optimized .new handling, calling of defaults is 10x faster
* implemented basic use of submethod BUILD
* implemented s:g
* new small functions: Block.arity, sign, truncate, round, floor, ceiling, conjugate
* Stole series op from Rakudo
* fixed binding to @var
* Immediate metamodel refactor: metaobjects are constructed during the parse now
- Many crash-errors are now sorries
- Switched to nom-like class stubbing
- Many small improvements during refactor, like "also is rw" in blocks
* Starting to gut $*CURLEX and create a single consistent model
* Discussed the meaning of names in depth with jnthn
WILL DO:
* Finish gutting $*CURLEX
* Fix bugs once that's done with
* Use newfound insights to implement all the remaining cases of qualified names 18:22
EOR
moritz sorear++ 18:23
mberends indeed, sorear++ 18:25
so, my report:
* found out which Parrot NCI signature was broken in Zavolaj and MiniDBI. 18:26
* almost completed a biggish-int library that, with a little more work, could provide Integer functionality for NQP. 18:28
(github.com/jnthn/zavolaj/blob/mast...gishint.c)
.eor 18:29
tadzik moritz++ sorear++ mberends++
PerlJam my pre-report:
* did absolutely nothing but talk on #perl6 and occasionally watch everyone else do awesome things.
.eor :-) 18:30
mberends PerlJam += 0.5 ?
tadzik so I'll pre-report to, it looks fashionable
did: gsoc week #3, everything done, mentors happy 18:31
fixed some spec typos and thinkos
a little bit of nom hacking 18:32
...passed every exam I could, 2 finals ahead
=end report
=for plans 18:33
pass the finals, mail Damian Conway about the spec doubts 18:34
PerlJam tadzik: cc'd to perl6-language too?
tadzik I can 18:35
pmichaud I wouldn't cc. 18:37
Two separate messages, maybe.
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:46
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?
moritz if my continued abasense from #phasers is a problem for anybody, I can look for other solutions
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
it would be nice, but it's not required
tadzik I don't think I'll need a full spec-complete implementation
oh, this way, I get it 18:49
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
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.
tadzik what's best for Rakudo? I don't need to go the easiest way
moritz iirc nom doesn't do any regexes yet
tadzik they work in the parser, that's what I need
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
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
and then periodically sync with nom
mberends tadzik: you may ... pmichaud++ said it
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
PerlJam tadzik++ 18:55
tadzik pmichaud: yeah, that's my dillema: work from master or from nom
pmichaud tadzik: I think only you can answer that one. I wouldn't want you to block on nom, though.
and it's possible that could happen.
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.
tadzik in theory I have 3 weeks to start working on the serialization stuff, nom may be far more ready for it then
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
pmichaud also, keep in mind that nom development may slow again soon, as Perl workshops come into play
NPW is this Saturday, and I believe FPW is the following weekend, so there may be less nom progress than "normal" 18:58
(or it may be "normal" and not accelerated like the last couple of weeks have been)
tadzik right
19:00 colomon joined
colomon o/ 19:00
sorear o/
Util o/
tadzik o/
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
good afternoon, everyone. Welcome to #phasers, today is June 14 at 19:01 UTC.
(translate "afternoon" to your localtime as appropriate)
mberends q1q 19:02
Util q1report
pmichaud Util: report please :)
Util New RC Perl 6 solutions: 19:03
rosettacode.org/wiki/Euler_method
rosettacode.org/wiki/Caesar_cipher
rosettacode.org/wiki/Draw_a_cuboid
rosettacode.org/wiki/Unbias_a_random_generator
rosettacode.org/wiki/Non-continuous_subsequences
rosettacode.org/wiki/Strip_a_set_of...m_a_string
rosettacode.org/wiki/Kaprekar_numbers
rosettacode.org/wiki/Convert_decimal_number
Improved:
rosettacode.org/wiki/Spiral_matrix
rosettacode.org/wiki/Sierpinski_carpet
rosettacode.org/wiki/Matrix_transposition
# Plan to do: $WORK
EOR
pmichaud wow! Util++
colomon Util++
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?
colomon I've been pondering trying to do a sequences lightning talk at YAPC::NA.
pmichaud colomon: +1 to that
tadzik Util++, very nice, I have to read through that one day 19:05
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:06
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
Util Also, I need to turn my bug/wanted-to list into Rakudo bug reports and public wishlist items (for NYI features)
pmichaud Util: +1
Util munch vs. batch zapped me again this week; I just fell back to splice(0, $n)
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
sorear pmichaud: how did you fix it? 19:08
Util pmichaud++
pmichaud sorear: evaluate the operands to infix:<=> r-to-l
(since it's right associative)
anyone else have any reports to give? 19:09
sorear hmm
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.
no other reports, so mberends had a q1q
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?
sorear q1q=?
tadzik queue one question
pmichaud mberends: good question 19:11
mberends: I don't think we had a discussion/consensus yet.
I propose <pmichaud jnthn moritz>.pick(2)
19:12 lichtkind joined
pmichaud anyone feel that others should be added to the candidate set there? 19:13
mberends tadzik? 19:14
PerlJam nope (jnthn and moritz were the first people I thought of before)
tadzik mberends: you mean me? 19:15
pmichaud tadzik: interested?
tadzik well, I don't mind volunteering, but I feel like there are people here who are more into the business than me
pmichaud okay: I'll poll all(<pmichaud moritz jnthn tadzik>) and we'll grab our candidates from that set
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
mberends++
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
pmichaud jnthn doesn't appear to be present atm, so I'll work on this later today 19:17
any other questions, comments, or reports?
tadzik pmichaud: did we get to anything regarding Select PMC? 19:18
pmichaud tadzik: I'll ping cotto about that.
oh, wait, we did. They had some design changes they wanted to see made, iirc.
tadzik yeah, he reviewed and posted his opinions
pmichaud I'll bump the ticket and see if we can get a decision (more) 19:20
basically, the question will be "accept the proposed Select PMC as experimental" or "wait for a better implementation to come along".
tadzik we can poke that on #ps today
pmichaud we could also adopt the PMC into Rakudo (master) for the time being.
tadzik after all, this is something we want from Parrot
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
*interesting question
tadzik hmm
pmichaud it wouldn't need to be a PMC then -- it could be a 6model object or library or something like that
tadzik we want async io, disregarding the details of implementation, methinks
int eresting; 19:22
pmichaud do you have a specific application/test in mind for async io?
sorear Have we decided on an API for async IO?
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
and speed of course
pmichaud Basically the consensus opinion is that we need to see use cases before trying to put together a spec
tadzik Star was almost a year ago, and we're nowhere near those things
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 :)
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" :-)
then we can prototype it in nqp, nom, or master (and poke the parrot folks if we decide that's really the appropriate place)
tadzik we can steal ideas from some good Perl 5 solution
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.
so maybe it's better to just do the work in nom directly, and to figure out how to do that. 19:27
Same goes for NCI, btw.
if we don't like Parrot's NCI interface, we still have the option of writing our own. :)
(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:28
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
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)
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
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 :)
s/myself/ourselves/
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.
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
think
pmichaud benabik: (6model adoption) yes, I expect that will eventually happen. I doubt it will happen in 2011.
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.
certainly well-bounded, at any rate. 19:36
one should be able to adopt 6model without having to adopt everything built on top of it :)
that's kind of the point of 6model :)
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
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.
pmichaud and from a perl 6 perspective, niecza can be an excellent "help explore the spec" platform as well
(i.e., "sorear initiative" +1) 19:39
any other comments or questions?
pmichaud leaves the microphone open for anyone that wants to pick it up. 19:40
moritz sings a ballade
moritz not a good singer 19:41
tadzik doesn't sing good, but sings a lot 19:50
jnthn oops, sorry I missed phasers 19:53
$dayjob event lasted longer than expected, then trains were screwed up on way home :/ 19:54
sorear \\o/ jnthn
count yourself lucky you have usable trains
jnthn sorear: I do. :)
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
jnthn sorear: eww.
That's gonna blow up the serialization graph
sorear no, I'm not storing that 19:56
jnthn Oh
sorear I'm just using it so they can call sorry
(also, source position information)
jnthn OK. That sounds like the wrong factoring.
sorear I agree.
That's why I'm talking to you about it.
jnthn Though I should probably ask what you're trying to do before criticising your approach. :)
jnthn did enough criticism today :)
sorear at the very least, PackageHOW.add_attribute really wants to produce a SORRY! 19:57
I'm also trying to move redeclaration error logic into add_my_name
jnthn Hmm. I'd hope your PackageHOW doesn't have an add_attribute. 19:58
Did you mean ClassHOW?
sorear right now, my PackageHOW has an add_attribute that throws an exception
jnthn Oh.
I don't like that apporach. 19:59
sorear because "Cannot find method add_attribute" is very very LTA
jnthn Yes, and that's why we don't give that in Rakudo. :)
You just do .^can on the meta-object. 20:00
If it can't, you report a nice, helpful error.
sorear see #perl6 20:01
I want to have source location on that
jnthn Sure
sorear ideally, integrated into the SORRY/$*FATALS system
jnthn So try/CATCH around the meta-method call.
And then SORRY in CATCH
sorear ew
jnthn Well, it's a bunch better than what you're suggesting. 20:02
There's not very many declarators.
Need to think about the meta-programmer.
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
Plus it's easy to write a generic thing that does CATCH -> SORRY
And pass a closure to it.
That's probably how I'll factor it in nom. 20:04
moderator weekly Perl 6 status meetings with phase transitions: Tue 19:00 UTC | IR clogs at irclog.perlgeek.de/phasers/today 20:39
20:51 [particle] left 21:03 [particle] joined 22:10 benabik left 22:13 lichtkind left 22:32 mberends left 22:34 mberends joined 22:38 mberends left 23:54 [particle] left, [particle] joined