New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lexical subs #12238
Comments
From @cpansproutThere doesn’t appear to be a ticket for this already, so I’m making one. There is also another reason: I think I know how to make it work. The last time this came up, the two main issues were: 1) If ‘my sub’ follows the same scoping rules as existing my and sub declarations, then the lexical sub will not be visible inside itself, unless declared beforehand. But if ‘my’ creates a new pad entry, then this won’t work: my sub foo; because the second one creates a new pad entry and does not modify the existing one. 2) Should declarations be compile-time or run-time? If they are compile-time declarations, then how does one redefine a sub (c.f. problem 1); and how does a lexical sub close over variables? If it is a run-time thing, then it is radically different from ‘sub foo {...}’, so shouldn’t it look different? These questions can be summarized as: When does a lexical closure close over outer variables? What else has to happen to make it work? I think the solution to #1 is to make ‘sub foo { ... }’ respect a lexical declaration that precedes it. Just as $x = 3 does not assign to the package variable $x after a my $x declaration, so ‘sub foo { ... }’ should not create a package sub after ‘my sub foo;’. That in itself pretty much resolves #2, but we have (at least) two variants: • Lexical subs close over variables when the name comes into scope (which could happen multiple times with loops). For the most part, there is no observable difference here, until it comes to referential identity and for loops. I don’t think we have to worry about referential identity, since optimisations would make all three variants nearly identical in that regard. For for loops we have to decide what this will do: for my $x (1..10) { The @results will be 1..10, 1..10 and (1)x10, respectively for the three variants. And what about this? my sub foo; Results: (undef)x10, 1..10, (1)x10 And this would produce the same: my $x; In all these cases, the second variant seems more intuitive, at least to me. In fact, that’s similar to how format closures work. This prints the numbers from 1 to 10: my $x; If we introduce lexical aliases via \my $x = $y, we will need to figure this out for the sake of that, too. Next issue: What should state sub do? Should it behave the same way as my sub? Should it close over the variables the first time through the function? Should it be an error (currently it is not) until we decide? I think it should be just a named package sub (‘Variable will not stay shared’ and all), but visible only in a lexical scope. I think it is pretty obvious that our sub should create a lexical alias to a package sub, so that this will work: sub foo { warn "main" } ‘my format’ and ‘my package’ would be going a bit too far. :-) |
From @cpansproutOn Sun Jul 01 14:23:26 2012, sprout wrote:
s/just/just like/ -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Sun Jul 01 14:23:26 2012, sprout wrote:
s/just/just like/ -- Father Chrysostomos |
@cpansprout - Status changed from 'new' to 'open' |
From @kentfredricOn 2 July 2012 09:23, Father Chrysostomos <perlbug-followup@perl.org> wrote:
As far as what I expect would happen, I'd imagine, if I saw that code, for my $x (1..10) {
If I saw that, I'd expect the same as: my $foo = sub {}; In both case, my brain sees "my sub foo" and thinks its just sugar for However, if you were to use 'state foo' , the expectation I'd have is : for my $x (1..10) { would be the same as: my $foo; That being, @results would be (1)x10 ( Though, slightly unintuitive I feel ) I think people who are doing that though are doing it to be my $foo; -- perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3, |
From @cpansproutnewMYSUB is listed in the API. (It has an A in embed.fnc and shows up This is its signature: #ifdef PERL_MAD Implementing lexical subs within the constrains of the current Instead, can I just change this? Nothing uses it. All it does -- Father Chrysostomos |
From [Unknown Contact. See original ticket]newMYSUB is listed in the API. (It has an A in embed.fnc and shows up This is its signature: #ifdef PERL_MAD Implementing lexical subs within the constrains of the current Instead, can I just change this? Nothing uses it. All it does -- Father Chrysostomos |
From @ikegamiOn Thu, Jul 5, 2012 at 5:46 PM, Father Chrysostomos via RT <
I'm particularly interested in the ability of "use Module;" to create a - Eric |
From @cpansproutOn Thu Jul 05 15:11:55 2012, ikegami@adaelis.com wrote:
If you already have a compiled CV, it might be possible using My changes should make ‘foo’ generate a padcv op (nonexistent in blead) newMYSUB is probably not what you want, as it is analogous to newSUB: -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Thu Jul 05 15:11:55 2012, ikegami@adaelis.com wrote:
If you already have a compiled CV, it might be possible using My changes should make ‘foo’ generate a padcv op (nonexistent in blead) newMYSUB is probably not what you want, as it is analogous to newSUB: -- Father Chrysostomos |
From @doyOn Thu, Jul 05, 2012 at 02:46:38PM -0700, Father Chrysostomos via RT wrote:
If all it does is die, clearly nobody can be using this for any real -doy |
From @ikegamiOn Thu, Jul 5, 2012 at 6:59 PM, Father Chrysostomos via RT <
No, I did not have an already compiled CV. I needed a stub to pass to CV* const qwcv = If you already have a compiled CV, it might be possible using
Are you planning on having Perl look there? - Eric |
From @cpansproutOn Thu Jul 05 20:56:18 2012, ikegami@adaelis.com wrote:
I misspoke. I meant ‘your own CV’, as opposed to PL_compcv.
Yes. On the sprout/lexsub branch it already does, but only works for -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Thu Jul 05 20:56:18 2012, ikegami@adaelis.com wrote:
I misspoke. I meant ‘your own CV’, as opposed to PL_compcv.
Yes. On the sprout/lexsub branch it already does, but only works for -- Father Chrysostomos |
From @cpansproutOn Sun Jul 01 14:23:26 2012, sprout wrote:
Actually we do. State variables are not persistent across anonymous subroutines. push @subs, sub { state $x } for 1..10; will give you ten subroutines, each with a different $x. I find that to be completely counterintuitive. (It is also completely It also creates yet another set of scoping rules for people to remember. The problem it raises for lexical subs is that it is not at all clear If state variables were intended to replace this sort of thing: { then they have failed to do so. Is this something we can fix, or will it break too many things? -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Sun Jul 01 14:23:26 2012, sprout wrote:
Actually we do. State variables are not persistent across anonymous subroutines. push @subs, sub { state $x } for 1..10; will give you ten subroutines, each with a different $x. I find that to be completely counterintuitive. (It is also completely It also creates yet another set of scoping rules for people to remember. The problem it raises for lexical subs is that it is not at all clear If state variables were intended to replace this sort of thing: { then they have failed to do so. Is this something we can fix, or will it break too many things? -- Father Chrysostomos |
From perl-diddler@tlinx.org` Father Chrysostomos via RT wrote:
That hurts. I would have thought it would have declared it once like a 'my' and Erg......Honestly, since 'my' already isn't persistent across such, is
|
From @cpansproutOn Sat Jul 07 11:35:48 2012, sprout wrote:
In fact, they have been this way since they were added in commit ... And I just found this message, which shows that it was very deliberate: http://www.nntp.perl.org/group/perl.perl5.porters/;msgid=20070906085723.GA30617@iabyn.com So now I’m stuck on how to implement my sub foo { state $x }. -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Sat Jul 07 11:35:48 2012, sprout wrote:
In fact, they have been this way since they were added in commit ... And I just found this message, which shows that it was very deliberate: http://www.nntp.perl.org/group/perl.perl5.porters/;msgid=20070906085723.GA30617@iabyn.com So now I’m stuck on how to implement my sub foo { state $x }. -- Father Chrysostomos |
From tchrist@perl.com"Father Chrysostomos via RT" <perlbug-comment@perl.org> wrote
Not so. Camel v4, chapter 7, page 324: Finally, when we say that a state variable is initialized only once, we don’t mean Larry was quite certain about that part, because he wanted to make sure
True.
Because it was designed to work this way.
If we view C<my sub> as a declaration, than I cannot see why there Are you worried about this situation? sub outer { The important question here is whether all those $x variables have And no, I don't know what the right answer is. I do agree that
I don't believe they were.
I'm not sure "fix" is the operative term here, considering that my @subs; There's also the argument that breaking this changes the Can't see a good argument for all that. Nonetheless, I can see your conundrum. I don't suppose you http://perlcabal.org/syn/S04.html There is a new state declarator that introduces a lexically scoped And later on: The semantics of INIT and START are not equivalent to each other in the our $i = 0; But state automatically applies "start" semantics to any initializer, so this also works: $func = { state $x = $i++; dostuff($i) } Each subsequent clone gets an initial state that is one higher than the And later on there is this, which is interesting but not completely Lexical names do not share this problem, since the symbol goes out of sub foo { There may also be applicable points in S06, since you can my subs http://perlcabal.org/syn/S06.html#Named_subroutines Hm, have you thought about our sub? I think it is the same in perl6 --tom |
From @cpansproutOn Sat Jul 07 12:53:32 2012, tom christiansen wrote:
Thank you. Could you write a patch to perlsub then? :-) What it currently says is terribly vague. In fact, I would go so far as
I think I have the right answer now. If we document that only In the example you gave, those $x variables would all have the same If whether \&inner will clone the sub or not is supposed to be a matter
Maybe the Camel, but certainly not perlsub. :-)
That is interesting, since it is very similar to what I came up with on If a sub is conceptually cloned when the block enters, does that mean How does Perl 6 deal with my subs in for loops?
I’ve already implemented it. :-) See the sprout/lexsub branch. It is analogous to our $var, in that the declaration persists across $ ./perl -Ilib -e 'our sub foo { warn 42 } package bar; foo()' $ ./perl -Ilib -MO=Concise -e 'package a; our sub foo { warn 42 }
Whether it is or no, I wot not. I have not followed Perl 6 developement -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Sat Jul 07 12:53:32 2012, tom christiansen wrote:
Thank you. Could you write a patch to perlsub then? :-) What it currently says is terribly vague. In fact, I would go so far as
I think I have the right answer now. If we document that only In the example you gave, those $x variables would all have the same If whether \&inner will clone the sub or not is supposed to be a matter
Maybe the Camel, but certainly not perlsub. :-)
That is interesting, since it is very similar to what I came up with on If a sub is conceptually cloned when the block enters, does that mean How does Perl 6 deal with my subs in for loops?
I’ve already implemented it. :-) See the sprout/lexsub branch. It is analogous to our $var, in that the declaration persists across $ ./perl -Ilib -e 'our sub foo { warn 42 } package bar; foo()' $ ./perl -Ilib -MO=Concise -e 'package a; our sub foo { warn 42 }
Whether it is or no, I wot not. I have not followed Perl 6 developement -- Father Chrysostomos |
From @cpansproutI’m forwarding this to the Perl 6 language list, so see if I can find an [This conversation is about how lexical subs should be implemented in On Sat Jul 07 13:23:17 2012, sprout wrote:
This question might be more appropriate: In this example, which @a does sub foo { -- Father Chrysostomos |
From [Unknown Contact. See original ticket]I’m forwarding this to the Perl 6 language list, so see if I can find an [This conversation is about how lexical subs should be implemented in On Sat Jul 07 13:23:17 2012, sprout wrote:
This question might be more appropriate: In this example, which @a does sub foo { -- Father Chrysostomos |
From tchrist@perl.com"Father Chrysostomos via RT" <perlbug-comment@perl.org> wrote
I do have an answer from Damian, which I will enclose below, and a
[...]
The answer to your immediate question is that if you call foo(), Following is Damian's answer to my question, shared with permission. --tom From: Damian Conway <damian@conway.org> X-Spam-Status: No, score=-102.6 required=4.5 tests=BAYES_00,RCVD_IN_DNSWL_LOW, X-Google-Sender-Auth: UHLwfgo2kyvv2prdl6qJm-RfLF8 > It looks like perl5 may be close to having my subs, but a puzzle The right things to do (and what Rakudo actually does) is to treat That is: a lexical sub is like a "my" var, in that you get a new one By that reasoning, state vars inside a my sub must belong to each Another way of thinking about what Perl 6 does is that: my sub foo { whatever() } is just syntactic sugar for: my &foo := sub { whatever() } That is: create a lexically scoped Code object and alias it at run-time With this approach, in Perl 6 it's easy to specify exactly what you want: sub recount_from ($n) { my sub counter { while prompt "recount $n> " { vs: sub first_count_down_from ($n) { state $count = $n; # All instances of &counter share a common count my sub counter { while prompt "first count $n> " { Feel free to forward the above to anyone who might find it useful. Damian |
From @cpansproutOn Sat Jul 07 18:35:03 2012, tom christiansen wrote:
Thank you. So the bar sub seems to be closing over the name @a (the Since I don’t have it installed, could you tell me what this does? sub foo { And this? sub foo { And this? sub foo {
Does that mean I cannot call it before it is declared?
I see.
What I am really trying to find out is when the subroutine is actually -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Sat Jul 07 18:35:03 2012, tom christiansen wrote:
Thank you. So the bar sub seems to be closing over the name @a (the Since I don’t have it installed, could you tell me what this does? sub foo { And this? sub foo { And this? sub foo {
Does that mean I cannot call it before it is declared?
I see.
What I am really trying to find out is when the subroutine is actually -- Father Chrysostomos |
From tchrist@perl.com"Father Chrysostomos via RT" <perlbug-comment@perl.org> wrote
All three of those say the same thing: 123 --tom |
From damian@conway.orgFather Chrysostomos asked:
Yes. It is supposed to be (or at least must *appear* to be),
Yes. For example, a lexical sub might be declared in a loop inside the For example, this: sub outer_sub () { say "\nsub id: ", &inner_sub.id; outer_sub(); produces: sub id: -4628941774842748435 sub id: -4628941774848253711 sub id: -4628941774839825925 under Rakudo BTW, Both the above "yes" answers are consistent with (and can be my sub foo { whatever() } is just a syntactic convenience for: my &foo := sub { whatever() } HTH, Damian |
From @cpansproutOn Sat Jul 07 22:23:16 2012, thoughtstream wrote:
I said when, not whether. :-)
$inner_state";
Thank you. Does Perl 6 have an equivalent to this? my $x; In this case, the loop reuses the $x slot in the pad, making the my $x;
Except that my sub foo happens upon block entry, right?
It does, but I am still trying to wrap my head around the fundamental In Perl 5, It seems that Perl 6 closures close over the slot, not the Anyway, I think I know how to implement this now. The first time a ‘my’ sub is referenced or called, it is cloned. The -- Father Chrysostomos |
From Eirik-Berg.Hanssen@allverden.noOn Thu, Sep 13, 2012 at 5:13 PM, Leon Timmermans <fawaka@gmail.com> wrote:
As long as we're shedding bikes: How about "experimental:lexical_subs"? ... it's not as if it's a symbol, after all ... Eirik, briefly considering "experimantal: lexical subs" and |
From @steve-m-haySteve Hay wrote on 2012-09-13:
Commit 56e168315961440f9bd040fc9a6b32e128fa289b passes all tests. |
From @ap* Father Chrysostomos via RT <perlbug-followup@perl.org> [2012-09-13 17:55]:
Hmm, point. Clearly I should have paid more attention. And there is certainly no way to do it without underscores and without |
From @cpansproutOn Thu Sep 13 09:59:45 2012, Steve.Hay@verosoftware.com wrote:
Thank you. Attached is that commit. I cannot see anything in there -- Father Chrysostomos |
From @cpansproutcommit e630ae0c3e7bb47b642a8e758beadd6cc68404f9 Let barewords look up our subs Inline Patchdiff --git a/t/cmd/lexsub.t b/t/cmd/lexsub.t
index cef8070..ef2581e 100644
--- a/t/cmd/lexsub.t
+++ b/t/cmd/lexsub.t
@@ -7,7 +7,7 @@ BEGIN {
*bar::is = *is;
}
no warnings 'deprecated';
-plan 20;
+plan 21;
{
our sub foo { 42 }
@@ -16,9 +16,7 @@ plan 20;
is do foo(), 42, 'calling our sub from same package (do)';
package bar;
sub bar::foo { 43 }
- { local $::TODO = ' ';
- is foo, 42, 'calling our sub from another package';
- }
+ is foo, 42, 'calling our sub from another package';
is &foo, 42, 'calling our sub from another package (amper)';
is do foo(), 42, 'calling our sub from another package (do)';
}
@@ -44,9 +42,7 @@ package main;
our sub b {
if (shift) {
package bar;
- { local $::TODO = ' ';
- is b, 42, 'our sub visible inside itself after decl';
- }
+ is b, 42, 'our sub visible inside itself after decl';
is &b, 42, 'our sub visible inside itself after decl (amper)';
is do b(), 42, 'our sub visible inside itself after decl (do)';
}
@@ -59,9 +55,7 @@ sub bar::c { 43 }
{
our sub c;
package bar;
- { local $::TODO = ' ';
- is c, 42, 'our sub foo; makes lex alias for existing sub';
- }
+ is c, 42, 'our sub foo; makes lex alias for existing sub';
is &c, 42, 'our sub foo; makes lex alias for existing sub (amper)';
is do c(), 42, 'our sub foo; makes lex alias for existing sub (do)';
}
@@ -76,3 +70,9 @@ sub bar::c { 43 }
our sub e ($);
is prototype "::e", '$', 'our sub with proto';
}
+{
+ # lexical subs (even our) override all keywords
+ our sub if() { 42 }
+ my $x = if if if;
+ is $x, 42;
+}
diff --git a/toke.c b/toke.c
index ff3f86c..8cba215 100644
--- a/toke.c
+++ b/toke.c
@@ -6602,9 +6602,13 @@ Perl_yylex(pTHX)
keylookup: {
bool anydelim;
+ bool lex;
I32 tmp;
+ SV *sv;
+ lex = FALSE;
orig_keyword = 0;
+ sv = NULL;
gv = NULL;
gvp = NULL;
@@ -6673,6 +6677,31 @@ Perl_yylex(pTHX)
TOKEN(LABEL);
}
+ /* Check for lexical sub */
+ if (PL_expect != XOPERATOR) {
+ char tmpbuf[sizeof PL_tokenbuf + 1];
+ PADOFFSET off;
+ *tmpbuf = '&';
+ Copy(PL_tokenbuf, tmpbuf+1, len, char);
+ off = pad_findmy_pvn(tmpbuf, len+1, UTF ? SVf_UTF8 : 0);
+ if (off != NOT_IN_PAD) {
+ if (PAD_COMPNAME_FLAGS_isOUR(off)) {
+ HV * const stash = PAD_COMPNAME_OURSTASH(off);
+ HEK * const stashname = HvNAME_HEK(stash);
+ sv = newSVhek(stashname);
+ sv_catpvs(sv, "::");
+ sv_catpvn_flags(sv, PL_tokenbuf, len,
+ (UTF ? SV_CATUTF8 : SV_CATBYTES));
+ gv = gv_fetchsv(sv, GV_NOADD_NOINIT | SvUTF8(sv),
+ SVt_PVCV);
+ lex = TRUE;
+ goto just_a_word;
+ }
+ /* unreachable */
+ else Perl_croak(aTHX_ "\"my sub\" not yet implemented");
+ }
+ }
+
if (tmp < 0) { /* second-class keyword? */
GV *ogv = NULL; /* override (winner) */
GV *hgv = NULL; /* hidden (loser) */
@@ -6737,7 +6766,6 @@ Perl_yylex(pTHX)
orig_keyword = 0;
}
just_a_word: {
- SV *sv;
int pkgname = 0;
const char lastchar = (PL_bufptr == PL_oldoldbufptr ? 0 : PL_bufptr[-1]);
OP *rv2cv_op;
@@ -6805,7 +6833,8 @@ Perl_yylex(pTHX)
/* if we saw a global override before, get the right name */
- sv = S_newSV_maybe_utf8(aTHX_ PL_tokenbuf,
+ if (!lex)
+ sv = S_newSV_maybe_utf8(aTHX_ PL_tokenbuf,
len ? len : strlen(PL_tokenbuf));
if (gvp) {
SV * const tmp_sv = sv;
@@ -6836,7 +6865,7 @@ Perl_yylex(pTHX)
const_op->op_private = OPpCONST_BARE;
rv2cv_op = newCVREF(0, const_op);
}
- cv = rv2cv_op_cv(rv2cv_op, 0);
+ cv = lex ? GvCV(gv) : rv2cv_op_cv(rv2cv_op, 0);
/* See if it's the indirect object for a list operator. */
|
From @cpansproutOn Thu Sep 13 14:10:52 2012, aristotle wrote:
Porting/todo.pod says this: =head2 enable lexical enabling/disabling of individual warnings Currently, warnings can only be enabled or disabled by category. There And Eirik Berg Hanssen says:
Now consider that you are proposing a warnings ‘category’ with one If you put two and two together, you end up with όλα από πέντε (sorry, use warnings "experimental"; # whole category no warnings 'utf8'; # turn them off And that solves the problem of trying to decide what convention to use Now we don’t have to do it all at once, but we can start with the Experimental warning IDs should match the feature names, too, so they -- Father Chrysostomos |
From @ap* Father Chrysostomos via RT <perlbug-followup@perl.org> [2012-09-13 23:44]:
:-)
Now *that* I like.
Yes, it would require going through all of core and naming every single
Yeah. The proposal feels like a unification on the right level that While the approach feels very right though, I feel I can’t ask good Regards, |
From @cpansproutOn Thu Sep 13 15:11:14 2012, aristotle wrote:
One problem is that warnings might change categories. One instance I I think those will be rare, though. We can make backward-compatibility -- Father Chrysostomos |
From dcmertens.perl@gmail.comWhat's the reason for using one instead of two colons? Perl namespace Or should this question be tagged as bike shedding and ignored for the David
|
From @ap* David Mertens <dcmertens.perl@gmail.com> [2012-09-14 05:45]:
Since it’s FC who came up with the approach, maybe it should be use warnings "internal'valpha"; in his honour. ;-) Regards, |
From @cpansproutOn Thu Sep 13 20:42:56 2012, dcmertens.perl@gmail.com wrote:
Warnings categories are not packages. I could equally argue that I think the single colon prevents anyone from drawing connections where But we could use anything. -- Father Chrysostomos |
From @cpansproutOn Thu Sep 13 08:50:22 2012, sprout wrote:
I take that back. We already have non_unicode. But why non_unicode and -- Father Chrysostomos |
From Eirik-Berg.Hanssen@allverden.noOn Fri, Sep 14, 2012 at 7:14 AM, Father Chrysostomos via RT <
That was the idea. Or rather, no Perl-related connections. Colons are Eirik |
From @cpansproutOn Thu Sep 13 14:29:45 2012, sprout wrote:
Chip sent me a configuration with which I was able to reproduce the -- Father Chrysostomos |
From @cpansproutOn Fri Sep 14 16:30:44 2012, sprout wrote:
It was an uninitialized C auto. I have squashed this diff with the Inline Patchdiff --git a/toke.c b/toke.c
index 47c2b0a..db08ee7 100644
--- a/toke.c
+++ b/toke.c
@@ -6779,6 +6779,7 @@ Perl_yylex(pTHX)
rv2cv_op = NULL;
orig_keyword = 0;
lex = 0;
+ off = 0;
}
just_a_word: {
int pkgname = 0;
-- Father Chrysostomos |
From @cpansproutOn Thu Sep 13 15:11:14 2012, aristotle wrote:
It’s in now as 74760be. Did I perhaps act too soon? I don’t know. -- Father Chrysostomos |
@cpansprout - Status changed from 'open' to 'resolved' |
From @ap* Father Chrysostomos via RT <perlbug-followup@perl.org> [2012-09-16 08:45]:
Ah, design by fait accompli. :-) Well, let’s see. I don’t *expect* any surprises from this one. But then Regards, |
From @rjbs* Father Chrysostomos via RT <perlbug-followup@perl.org> [2012-09-16T02:41:22]
Well, I really don't like the use of : for separation, but that can be sorted -- |
From @nwc10Sorry, this never got answered at the time, partly because I saw that you On Fri, Aug 03, 2012 at 11:21:05PM -0700, Father Chrysostomos via RT wrote:
I can't remember better than the commit message says. ?{} blocks before and after this commit continued to be a complete On Sat, Aug 04, 2012 at 06:03:27PM -0700, Father Chrysostomos via RT wrote:
This doesn't surprise me. That commit revealed at least one test failure
Good stuff. Nicholas Clark |
From @nwc10On Thu, Aug 23, 2012 at 09:40:57AM -0700, Father Chrysostomos via RT wrote:
[snip detailed explanation] Very useful. Thanks for taking the time to write a coherent explanation. Is this in a comment in the code anywhere? I think it's more appropriate to Nicholas Clark |
From @cpansproutOn Mon Sep 17 03:39:21 2012, nicholas wrote:
Yes, it’s in op.c:block_end. I meant to say that, but I apparently never finished writing the message -- Father Chrysostomos |
From @rjbs* Father Chrysostomos via RT <perlbug-followup@perl.org> [2012-09-13T17:43:58]
I like the idea, but not enough. I think it will seem pretty good until it I think we should do two things. 1) these warnings should use ::, as if we're registering them as part of an 2) we should ensure that the mechanism for identifying core exceptions works on I know chromatic, at least, is working on this problem. I'll drop him a line -- |
From @cpansproutOn Thu Sep 20 21:25:09 2012, perl.p5p@rjbs.manxome.org wrote:
Should I also remove the documentation about extending : to individual
-- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Thu Sep 20 21:25:09 2012, perl.p5p@rjbs.manxome.org wrote:
Should I also remove the documentation about extending : to individual
-- Father Chrysostomos |
From @rjbs* Father Chrysostomos via RT <perlbug-comment@perl.org> [2012-09-25T21:05:13]
Please. Sorry for the delay. -- |
From @cpansproutOn Wed Sep 26 16:12:38 2012, perl.p5p@rjbs.manxome.org wrote:
Now done in commit f1d34ca. -- Father Chrysostomos |
From [Unknown Contact. See original ticket]On Wed Sep 26 16:12:38 2012, perl.p5p@rjbs.manxome.org wrote:
Now done in commit f1d34ca. -- Father Chrysostomos |
Migrated from rt.perl.org#113930 (status was 'resolved')
Searchable as RT113930$
The text was updated successfully, but these errors were encountered: