* 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