|
weekly Perl 6 status meetings with phase transitions: Tue 19:00 UTC | IR clogs at irclog.perlgeek.de/phasers/today Set by moderator on 14 June 2011. |
|||
|
16:10
spinclad left
18:08
masak joined
|
|||
| sorear | DID: | 18:14 | |
| refactored niecza's handling of qualified names | 18:15 | ||
| implemented indirect name references | |||
| made :: work as a name placeholder in many places | |||
| implemented Foo:: WHO access | |||
| implemented pseudo packages | |||
| started on pseudo package tests | 18:16 | ||
| WILL DO: | |||
| finish S02-names/pseudo.do | |||
| s/..$/t/ | |||
| try CATCH? | |||
| loop phasers? | |||
| EOR | |||
| masak | sorear++ | 18:17 | |
| pmichaud | What I did: | 18:34 | |
| nom stuff: | |||
| * Fixed return and take argument handling | |||
| * Added filetest operators | |||
| * Fixed Hash.STORE | |||
| * Fixed triangle reductions | |||
| * Added run(), qx operator | |||
| * Added %*ENV, @*ARGS, and $*ARGFILES | |||
| * Reviewed commits and patches | |||
| nqp stuff: | |||
| * Worked on NFA and protoregexes, still more to do | |||
| * Various qregex fixes | |||
| * Refactored HLL::Compiler a bit, improved handling of arguments | |||
| other stuff: | |||
| * Lots of improvements to features comparison tables | |||
| * Presented at FOSSCON in Philadelphia | |||
| What I plan to do: | |||
| * finish qregex protoregexes and ltm | |||
| * more spectests | |||
| EOR | |||
| masak | pmichaud++ | 18:36 | |
| moritz | what I did: | 18:49 | |
| * fixed a Configure.pl bug in rakudo | 18:50 | ||
| * (un)fudged a lot of tests | |||
| * implement {Int,Real}.base | |||
| * regex adverbs on the outside (rx:s// etc.) | |||
| * moved installation instructions out of README | 18:51 | ||
| Str.sbust | |||
| * fixed lots of Hash methods for empty hashes | 18:52 | ||
| * Mu.so | |||
| * more trig method/sub fiddling | |||
| What I tried, but failed to: | |||
| * s/// | |||
| * make nom installable | |||
| * allow throwing of subclasses of Exception, and make it return the original object (+ stack trace) | 18:53 | ||
| Plans for next week: | |||
| * more exception stuff | |||
| also did: mentored tadzik++ | 18:54 | ||
| EOR | |||
| jnthn | Over the last week... | ||
| * Improved error reporting when you use the wrong version of a pre-compiled library | |||
| * Implemented coercion (as trait); unlike master, it only coerces if needed | |||
| * Got ::?CLASS usable in at least declarative contexts | |||
| * Got enumerations much further along; they now support many methods | |||
| * Implemented &?ROUTINE; anonymous recursion works now | |||
| * Implemented currying (.assuming) | |||
| * Implemented rw trait on classes | |||
| * Implemented state variables. Main bug is that assignment isn't yet done at START time. | |||
| * Made packages and modules act like they're ~~ Any so we can talk about them without exploding | 18:55 | ||
| * Big refactor of static lexpads and BEGIN time. Fixed many bugs, and paves the way for serializing static lexpads in the future. | |||
| * Implemented auto-threading method calls | |||
| * Fixed sink prefix | |||
| * Unbusted CATCH enough to not hang | |||
| * Fixed implict %_ in methods | |||
| * Implemented trusts | |||
| * Implemented private methods | |||
| * Mostly put back |$c in a signature (thought I was done, then found a segfault :/) | |||
| * Mostly put back nested signatures; need to fix a few more things to pass all the tests master did, but well on the way | |||
| * Fixed a nasty symbol lookup code-gen bug | |||
| * Fixed up some meta-circularity related bugs | |||
| * Blogged first working example of a custom meta-class in Rakudo | |||
| Over the week to come... | |||
| * Mostly just continue fixing lots of things and winning back spectests | |||
| * Dig in more intensively for preparing for YAPC::EU | |||
| * Have weekend and most of next week set aside for Perl 6, hopefully. :-) | |||
| EOR | |||
| Util | pmichaud++ # Fixed triangle reductions | ||
| Pre-report: | |||
| * Attended Parrot Developer Summit. | |||
| * Answered Mark J. Reed's question on p6l about Recursive Lazy Lists | |||
| ... resulting in second solution here: rosettacode.org/mw/index.php/Gray_code#Perl6 | |||
| I *love* that this can work! my @bar := @foo Zop @bar; | 18:56 | ||
| * New $WORK started yesterday; Tuit freeze in effect. | |||
| EOR | |||
| moritz | jnthn++ | 18:58 | |
| pmichaud++ | |||
| Util++ | |||
|
18:58
mberends joined
|
|||
| sorear | o/ | 19:00 | |
| mberends | o/ | 19:01 | |
| jnthn | o/ | ||
| Util | o/ | ||
| moritz | \\o | ||
| tadzik | o/ | 19:03 | |
| masak | \\o | ||
| mberends | ok, I give up. this out-staring one another is becoming silly | 19:05 | |
| jnthn | ...did anybody not preport? :) | ||
| mberends: you didn't! go ahead. :) | 19:06 | ||
| tadzik | me neither | ||
| mberends | ok, I did some work on 6model/c: | ||
| sorear | the feature matrix has no row(s) for things like MY.WHO.<&say> | ||
| sorear wonders how many to add and where | 19:07 | ||
| moritz | sorear: one for lookup by name for sure | ||
| sorear | Should MY::.{'$nonexistant'} die or return Any? | 19:08 | |
| moritz | it should fail(), of course | ||
| sorear | heh | 19:10 | |
| lacking Failure, I shall not test this case | |||
| jnthn | "Niecza. The compiler that never fails!" | 19:11 | |
| sorear | o/ great spin | 19:12 | |
| mberends | Is the feature matrix expected to grow longer and longer, or is there some intention to restrict is growth by summarizing, for example, in the interest of brevity? | ||
| *its growth | |||
| moritz | mberends: I want to find a balance, neither endless growth, nor arbitrary restrictions | 19:14 | |
| mberends | +1 | 19:15 | |
| masak | bah! balance! :P | ||
| jnthn | .oO( bah-lance ) |
||
| moritz | blah-lance? :-) | 19:16 | |
| masak | kudos to everyone on the feature grid, but mostly to moritz++ for JFDI-ing it. | ||
| moritz | oh right, forgot that in my report :-) | ||
|
19:17
benabik joined
|
|||
| moritz | anyway, #phasers discussion | 19:17 | |
| jnthn | mberends: Did you finish reporting? :) | 19:18 | |
| moritz | would it make sense to compile a list of things that need to be fixed in nom before it can become master? | ||
| mberends | jnthn: yes, didn't really have a report prepared :/ | ||
| jnthn | mberends: ah, ok | ||
| moritz | tadzik: do you want to report? | 19:19 | |
| tadzik | sure | ||
| so, did: | |||
| - WHY for classes | |||
| - DOC phasers | |||
| - Pod::To::Text | |||
| - fixed command-line options in nom | 19:20 | ||
| - implemented basic --doc | |||
| - almost brought MAIN back to nom, blocked by lack of Signature.bind | 19:21 | ||
| (or was it Capture.bind? :)) | |||
| blockers: | |||
| - suprise segfaults (fancy WHY cases) | |||
| plans: | 19:22 | ||
| - default DOC init | |||
| - DOC use and friends | |||
| - more polished Pod::To::Text | |||
| - formatting codes | |||
| did ~=: | 19:23 | ||
| - Pod::Block::Para instead of bare string arrays | |||
| - blogged, appeared on Perl Weekly | |||
| - submitted a Lightning Talk about Pod in Perl 6, got it accepted! | 19:24 | ||
| =end report, I think :) | |||
| mberends | tadzik++ | ||
| moritz | tadzik++ | ||
| mberends | tadzik++ | ||
| tadzik | oh, also did List.unshift that is quite broken, but working enough to pass spectests :) | ||
| pmichaud | tadzik++ | 19:25 | |
| tadzik | I wonder if I missed something | ||
| jnthn | tadzik++ # awesome work! | ||
| moritz | indeed | ||
| tadzik | oh, oh | ||
| and merged podparser into nom :) | |||
| pmichaud | with the exception of "make install", I suspect that anything language-wise that is important enough to block nom->master perhaps ought to be on the features list :) | ||
| jnthn | \\o/ | ||
| moritz | pmichaud: should "absence of regular segfaults" be on the feature list? :/ | 19:26 | |
| jnthn | For me, it's landing QRegex, make install and making modules work without pre-compilation. | ||
| pmichaud | moritz: I'm not sure that absence of regular segfaults is a blocker (more) | ||
| indeed, in some sense we should move to master even if we're getting segfaults so we can track them better. | 19:27 | ||
| jnthn | moritz: nom just gets a bit more upset about getting its type system broken. Often the segfaults make extremely clear what's happening, if you know the guts enough. | ||
| moritz | pmichaud: last time I looked there was no lack of reproducible segfaults | ||
| pmichaud | moritz: are they being reported/recorded somewhere? | ||
| are there spectests that produce them? | |||
| moritz | pmichaud: here on #perl6 omstly | 19:28 | |
| pmichaud | that's kind of my point, then. | ||
| jnthn | moritz: Collecting them in nommap or so would help. | ||
| moritz | ok. | ||
| pmichaud | put them into RT. | ||
| sorear | more spectests = good for everyone | ||
| pmichaud | link the appropriate spectest to the ticket. | ||
| sorear is writing spectests now | 19:29 | ||
| jnthn | I suspect the binder patch from last night will have dealt with a good swathe of the segfaults also. | ||
| moritz | nom: my $x; $x ^^= 42, 43 | ||
| sorear | ENOP6EVAL | 19:30 | |
| pmichaud | jnthn: I'm not sure that casting every return value and argument into a p6-type is ultimately a good idea. But we'll go that way for now. | 19:32 | |
| jnthn | pmichaud: It's the best HLL interop stratergy we have for the time being. | 19:33 | |
| pmichaud | jnthn: no argument there. | 19:34 | |
| where "best" is "least bothersome" I suppose. | 19:35 | ||
| sorear | where is this casting stuff happening? | 19:36 | |
| jnthn | On segfaults, I'd note that I've not really jumped on them so far, because in general a segfault gives me a good hint at what's gone wrong. | ||
| I have an awesome C debugger. I have no Perl 6 debugger. | |||
| Now we're getting towards nom -> master, I'll be treating segfaults as "must fix". | 19:37 | ||
| pmichaud | jnthn: any thoughts on mapping Undef? | 19:47 | |
| I suspect I can also solve the problem in Actions.pm. | |||
| jnthn | pmichaud: I think that needs solving in Actions.pm (more) | 19:49 | |
| but it could be solved by using the perl6ize_type op and teaching it how to handle undef. | 19:50 | ||
| What do we need in this case? Nil? | |||
| pmichaud | that's what I meant, essentially., | ||
| (perl6ize_type maps Undef) | |||
| jnthn | oh, it already does? | ||
| OK. | |||
| :) | |||
| pmichaud | no, it doesn't yet. I'm asking if it should. | ||
| jnthn | oh! | ||
| :) | |||
| I don't mind it doing so. | 19:51 | ||
| Our only challenge is that we're trying to map an untyped undef into the Perl 6 typed undef world. | |||
| pmichaud | according to S03 ^^ is supposed to return Bool::False or (). | ||
| which... suck. | |||
| *sucks | |||
| jnthn | or, we get a choice? :) | ||
| s/or, / | |||
| benabik | untyped undef = Any()? | 19:52 | |
| pmichaud | Bool::False, but () in list context. | ||
| jnthn | What's...list context? | ||
| :) | |||
| pmichaud | yeah, exactly. | ||
| moritz | sounds like a p5 fossile | ||
| pmichaud | I may declare that a fossil. | ||
| jnthn | Does anything else behave like that? | ||
| Yeah, fossil indeed. :) | |||
| pmichaud | So perhaps returning Nil is best. | ||
| moritz | +1 | ||
| jnthn | OK | ||
| But where is Nil defined? :) | |||
| pmichaud | perl6ize type doesn't have access to Nil, so maybe I'll just put it into Actions.pm for now. | 19:53 | |
| jnthn | OK | ||
| pmichaud | There will have to be some Actions.pm support anyway. | ||
| moritz | on a barely related note, at some point we'll have to throw Perl 6 exceptions from C | 19:54 | |
| for example for the "Can't access attributes on a type object" error | |||
| any plans on how to approach that? | |||
| pmichaud | we have to throw exceptions that map to Perl 6 exceptions. I don't think that C has to throw a Perl 6 exception directly. | ||
| moritz | right | 19:55 | |
| jnthn | We'll handle it with a mapping of some kind, I expect. | ||
| pmichaud | that's what I'm guessing. If nothing else, &EXCEPTION can probably do that mapping. | 19:56 | |
| jnthn | *nod* | ||
| moritz | sounds like a valid approach | 19:58 | |
| sorear | jnthn++ # blog | 20:08 | |
| colomon just realized he forgot about #phasers. but hey, jnthn++ # exciting blog post | 20:37 | ||
| tadzik | :) | 20:53 | |
| so we can implement a profiler that way, no? :) | 20:54 | ||
| ...like, now? :) | 20:56 | ||
| pmichaud | tadzik: that doesn't seem like much of a profiler. | 20:57 | |
| all it tells us is method lookups, iiuc | |||
| tadzik | we can check the time, run the actual method, check the time | 20:58 | |
| then count the total time and count | |||
| pmichaud | ...unless there's an exception. | ||
| tadzik | yes | ||
| TimToady | put a LEAVE block :) | ||
| pmichaud | tadzik: if I'm reading the code correctly -- none of this is actually doing the "run the actual method" part. | 20:59 | |
| tadzik | hmm | ||
| there's a nextsame | 21:00 | ||
| that could become callsame, in the middle | |||
| jnthn | Note it just looks up the method. | ||
| TimToady | or put a LEAVE block :) | ||
| jnthn | You need to calculate a closure there and have find_method return that. | ||
| tadzik | oh, find_method, not fire_method | 21:01 | |
| okay | |||
| jnthn | And as TimToady++ said, it can't be that robust until we have LEAVE blocks. But it's still doable otherwise. | ||
| TimToady | though, arguably, the LEAVE could run any time between the nextsame and the actual return, unless we nail it down | 21:02 | |
| jnthn | TimToady: This is find_method, not dispatch_method. | 21:03 | |
| (there isn't a dispatch_method) | |||
| (that'd be bad meta-model design, imho) | |||
| TimToady | right | ||
| pmichaud | nextsame here is simply going on to the next find_method candidate, not to the method itself. | ||
| jnthn | Correct. | ||
| So | |||
| method find_method($obj, $name) { | 21:04 | ||
| sorear | I vote for defining nextsame to never, ever, ever require an extra call frame. That means calling LEAVEs immediately. | ||
| jnthn | return -> *@args, *%named { | ||
| TimToady | call always write callsame to get the other behavior | ||
| jnthn | # log start time | ||
| nextsame()($obj, |@args, |%named); | 21:05 | ||
| sorear | can'tcha just use |$cap? | ||
| jnthn | # log end time | ||
| } | |||
| pmichaud | jnthn: that won't work for methods that have (**@lol) arguments. | ||
| jnthn | sorear: Yes, if I'd implemented it. | ||
| pmichaud: Yeah, we want |$c really | |||
| pmichaud | right. | ||
| jnthn | pmichaud: I just didn't get around to that yet and was trying to give tadzik++ something that'd likely work today :) | ||
| pmichaud | eh, profiling at the nqp level will be easier anyway :) | ||
| jnthn | aye :) | 21:06 | |
| But meta-programming is fun! | |||
| ;) | |||
| sorear | Is there any reason to forbid $CORE::_ ? | 21:07 | |
|
21:16
masak left
|
|||