develooper Front page | perl.perl5.porters | Postings from January 2012

Re: \Questions about the \Future of \Escapes

Thread Previous | Thread Next
From:
Aristotle Pagaltzis
Date:
January 12, 2012 05:08
Subject:
Re: \Questions about the \Future of \Escapes
Message ID:
20120112130818.GB13885@fernweh.plasmasturm.org
* Nicholas Clark <nick@ccl4.org> [2012-01-11 16:20]:
> I think I can see a path to changing the behaviour with minimal
> breakage. In that
>
> 1) changed paradigm only happens in the scope of a use v5.18.0
> 2) regular expressions
>    a) remember the paradigm that they were compiled under,
>    b) encode this when stringified in their (?^) prefix
>    c) this is used when interpolating into a regex in a different paradigm
>
> This adds complexity. But it avoids possible problems of either
>
> 1) global change to the new paradigm, with small? backwards
>    compatibility risk
>
> or instead
>
> 2) new paradigm being lexically controlled, but "surprises" with
>    action at a distance depending on whether compiled regex objects
>    passed around are used directly, or stringified, interpolated and
>    recompiled
>
> I don't know which is worse. Action at a distance definitely troubles me.

I really don’t like this. Now sometimes one has to accept the reality of
a situation one does not like, but I wouldn’t want to take that stance
without the knowledge that it was the only option.

Let’s tentatively try the breakage and see how bad it really is.

Because what to me looms far larger than action at a distance is the
massive increase in conceptual complexity to the language that this
route represents, as well as the huge surface area for complicated
interactions, and not least the fact that all this essentially worthless
complexity (in terms of what problem it solves for users) will have to
be carried forward for all eternity and be a burden to every single
maintainer of mature Perl code ever hence (in having to know both sets
of semantics *plus* the rules for their interactions).

(This is why I proposed that if we are to allow versioning for changes
in semantics rather than syntactics (e.g. the `unicode_string` feature),
then the choice should be controlled by the main compilation unit and
then program-global: so that there be no potential for a combinatorial
explosion of semantics within the same operations. I do not understand
how Jesse’s plan can be tenable otherwise. (I pound this horse a lot,
I know. Sorry.))

In fact this so dismays me that I would prefer and rather live with only
minimal sanitisation of current semantics, accepting that simplification
is not in the cards, if in so doing we avoid the `use 5.x` albatross.

Of course there is a possibility that simplified semantics would be so
simple, so regular, and their interaction with the old crud so clear
that versioning is still a win bottom line. But I don’t expect that.

Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About