Skip to content
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

[EXPERIMENT] lexical subroutines #13326

Closed
p5pRT opened this issue Oct 3, 2013 · 15 comments
Closed

[EXPERIMENT] lexical subroutines #13326

p5pRT opened this issue Oct 3, 2013 · 15 comments
Labels

Comments

@p5pRT
Copy link
Collaborator

@p5pRT p5pRT commented Oct 3, 2013

Migrated from rt.perl.org#120085 (status was 'resolved')

Searchable as RT120085$

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 3, 2013

From @rjbs

Lexical subroutines were added as an experimental feature in perl 5.18.0.
Although they were discussed many times over the years, the actual ticket for
their implementation was pretty recent​: [perl #113930]

We need to establish acceptance criteria for the feature, even if they are just
"seem to work just fine for long enough."

--
rjbs

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

From @cpansprout

On Wed Oct 02 18​:06​:22 2013, rjbs wrote​:

Lexical subroutines were added as an experimental feature in perl
5.18.0.
Although they were discussed many times over the years, the actual
ticket for
their implementation was pretty recent​: [perl #113930]

We need to establish acceptance criteria for the feature, even if they
are just
"seem to work just fine for long enough."

They ought to be deparsable, but that will be tricky. Getting BEGIN
blocks to deparse in the right place is a related issue that will affect
lexical subs as well. Without that the deparsed form is pretty useless.
I have tried tackling that (BEGIN blocks) a couple of times, with no
success so far.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

From @Hugmeir

On Wed, Oct 2, 2013 at 10​:06 PM, Ricardo SIGNES
<perlbug-followup@​perl.org>wrote​:

# New Ticket Created by Ricardo SIGNES
# Please include the string​: [perl #120085]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=120085 >

Lexical subroutines were added as an experimental feature in perl 5.18.0.
Although they were discussed many times over the years, the actual ticket
for
their implementation was pretty recent​: [perl #113930]

We need to establish acceptance criteria for the feature, even if they are
just
"seem to work just fine for long enough."

Two things that don't work on lexical subs at the moment are 'prototype
"lexsub"' and using them in conjunction with the callchecker. The former
I'm not particularly worried about, but the latter should really be there
before they are deemed stable.

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

From @cpansprout

On Thu Oct 03 20​:02​:49 2013, Hugmeir wrote​:

On Wed, Oct 2, 2013 at 10​:06 PM, Ricardo SIGNES
<perlbug-followup@​perl.org>wrote​:

# New Ticket Created by Ricardo SIGNES
# Please include the string​: [perl #120085]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=120085 >

Lexical subroutines were added as an experimental feature in perl
5.18.0.
Although they were discussed many times over the years, the actual
ticket
for
their implementation was pretty recent​: [perl #113930]

We need to establish acceptance criteria for the feature, even if
they are
just
"seem to work just fine for long enough."

Two things that don't work on lexical subs at the moment are 'prototype
"lexsub"'

That shouldn’t work, just as &{"lexsub"} doesn’t work.

and using them in conjunction with the callchecker. The former
I'm not particularly worried about, but the latter should really be there
before they are deemed stable.

There are call checker problems in 5.18, but I believe they are solved
in bleadperl, except for one C API infelicity, which is covered by a
ticket linked to this one.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

From @Smylers

Father Chrysostomos via RT writes​:

On Wed Oct 02 18​:06​:22 2013, rjbs wrote​:

Lexical subroutines were added as an experimental feature in perl
5.18.0.

We need to establish acceptance criteria for the feature, even if
they are just "seem to work just fine for long enough."

They ought to be deparsable, but that will be tricky. Getting BEGIN
blocks to deparse in the right place is a related issue that will
affect lexical subs as well. Without that the deparsed form is pretty
useless. I have tried tackling that (BEGIN blocks) a couple of times,
with no success so far.

So should BEGIN blocks be marked experimental too, until they can
usefully be deparsed?

If not, why do lexical subs need to be deparsable in order to be
non-experimental but BEGIN blocks don't?

Smylers
--
Stop drug companies hiding negative research results.
Sign the AllTrials petition to get all clinical research results published.
Read more​: http​://www.alltrials.net/blog/the-alltrials-campaign/

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented Oct 4, 2013

From @cpansprout

On Fri Oct 04 01​:29​:36 2013, smylers@​stripey.com wrote​:

Father Chrysostomos via RT writes​:

On Wed Oct 02 18​:06​:22 2013, rjbs wrote​:

Lexical subroutines were added as an experimental feature in perl
5.18.0.

We need to establish acceptance criteria for the feature, even if
they are just "seem to work just fine for long enough."

They ought to be deparsable, but that will be tricky. Getting BEGIN
blocks to deparse in the right place is a related issue that will
affect lexical subs as well. Without that the deparsed form is pretty
useless. I have tried tackling that (BEGIN blocks) a couple of times,
with no success so far.

So should BEGIN blocks be marked experimental too, until they can
usefully be deparsed?

If not, why do lexical subs need to be deparsable in order to be
non-experimental but BEGIN blocks don't?

Good point. :-)

Currently the bodies of lexical subs don’t deparse at all and they all
appear at the top of the block they were declared in. I’ve been
hesitant to tackle just the bodies without getting the positioning
right, too. I suppose I’m the real blocker. :-)

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 11, 2016

From @rjbs

What, if anything, is preventing this from leaving experimental status?

(I've been using these more lately, and I am still happy.)

--
rjbs

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 11, 2016

From @cpansprout

On Wed May 11 12​:08​:59 2016, rjbs wrote​:

What, if anything, is preventing this from leaving experimental status?

(I've been using these more lately, and I am still happy.)

Ticket #123367. Yes, it’s obscure, but if we change it (and I think it should change) it might have unintended side effects. So nonexperimentalness should wait at least a little longer.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 12, 2016

From @csjewell

On Wed, May 11, 2016, at 13​:08, Ricardo SIGNES via RT wrote​:

What, if anything, is preventing this from leaving experimental status?

(I've been using these more lately, and I am still happy.)

Maybe I can throw some questions out from this issue.

"Do they deparse?" is the main question I'm seeing.

Others questions I see are that there are problems with the callchecker
related to these subs (which may already be solved), and setting a
prototype at runtime.

Which, if any, of these do we want to make official requirements to make
this unexperimental? Or do we just say 'We've had enough time, Mikey
likes it, so it's unexperimental now."

---
via perlbug​: queue​: perl5 status​: open
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=120085

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 12, 2016

From @cpansprout

On Thu May 12 07​:48​:09 2016, lists.perl.perl5-porters@​csjewell.fastmail.us wrote​:

On Wed, May 11, 2016, at 13​:08, Ricardo SIGNES via RT wrote​:

What, if anything, is preventing this from leaving experimental status?

(I've been using these more lately, and I am still happy.)

Maybe I can throw some questions out from this issue.

"Do they deparse?" is the main question I'm seeing.

They do deparse, as of 5.22, except for the bizarre edge cases in lexsub.t. I don’t think the remaining cases need to block it.

Others questions I see are that there are problems with the callchecker
related to these subs (which may already be solved), and setting

Reading, not setting.

a
prototype at runtime.

Those are solved. The prototype-reading problem was a misunderstanding.

Which, if any, of these do we want to make official requirements to make
this unexperimental? Or do we just say 'We've had enough time, Mikey
likes it, so it's unexperimental now."

Ticket #123367, as I said before. Other than that, I think the implementation is stable enough. A year ago I would certainly not have thought so.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 18, 2016

From @xsawyerx

I don't see a reason to keep this experimental.

On 05/12/2016 10​:03 PM, Father Chrysostomos via RT wrote​:

On Thu May 12 07​:48​:09 2016, lists.perl.perl5-porters@​csjewell.fastmail.us wrote​:

On Wed, May 11, 2016, at 13​:08, Ricardo SIGNES via RT wrote​:

What, if anything, is preventing this from leaving experimental status?

(I've been using these more lately, and I am still happy.)
Maybe I can throw some questions out from this issue.

"Do they deparse?" is the main question I'm seeing.
They do deparse, as of 5.22, except for the bizarre edge cases in lexsub.t. I don’t think the remaining cases need to block it.

Others questions I see are that there are problems with the callchecker
related to these subs (which may already be solved), and setting
Reading, not setting.

a
prototype at runtime.
Those are solved. The prototype-reading problem was a misunderstanding.

Which, if any, of these do we want to make official requirements to make
this unexperimental? Or do we just say 'We've had enough time, Mikey
likes it, so it's unexperimental now."
Ticket #123367, as I said before. Other than that, I think the implementation is stable enough. A year ago I would certainly not have thought so.

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 20, 2016

From @cpansprout

On Wed May 18 13​:32​:06 2016, xsawyerx@​gmail.com wrote​:

I don't see a reason to keep this experimental.

a50cb9d merges a branch that stops it from being so.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 20, 2016

From [Unknown Contact. See original ticket]

On Wed May 18 13​:32​:06 2016, xsawyerx@​gmail.com wrote​:

I don't see a reason to keep this experimental.

a50cb9d merges a branch that stops it from being so.

--

Father Chrysostomos

@p5pRT
Copy link
Collaborator Author

@p5pRT p5pRT commented May 20, 2016

@cpansprout - Status changed from 'open' to 'resolved'

@p5pRT p5pRT closed this May 20, 2016
@p5pRT p5pRT added the Severity Low label Oct 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.