Hello Mojolicious users,

As you all know, Mojolicious is among the most forward looking of the major 
Perl projects. We've long prided ourselves with moving forward in the aim of 
giving you the most modern web framework we can.

Recently we've had several volunteers spend effort to fix spurious warnings 
emitted from Mojolicious on old versions of Perl, usually 5.10. We've 
consistently rejected those patches because it was judged that the maintenance 
burden of the additional code wasn't worth the minor benefit to the 
ever-shrinking affected userbase. But having seen several of these, we started 
to consider whether we'd like to continue to support such old Perl interpreters.

In doing so we looked at the improvements made to Perl in releases subsequent 
to 5.10. Significant changes were made in versions 5.12 and 5.14, especially 
surrounding exception handling.

On prior versions of Perl, there are certain constructs in which Perl code 
simply cannot handle exceptions correctly. For years, the Mojolicious codebase 
has employed the exception handling as of 5.14, because the prior constructs do 
not work. Whether or not you've known it, users of Perl before 5.14 have always 
had to deal with that problem, whether in Mojolicious or outside of it.

With that consideration, and in addition to the spurious 5.10 warnings 
mentioned above, the Mojolicious Core Team is announcing that in 3 months, per 
our deprecation policy, we've decided that as of Feb 1, 2019, Mojolicious will 
require Perl version 5.14 or greater. We have already added a note discouraging 
5.10 and 5.12 to the FAQ 
(https://mojolicious.org/perldoc/Mojolicious/Guides/FAQ#Which-versions-of-Perl-are-supported-by-Mojolicious).
 We will be strengthening that to a full deprecation, but this should serve as 
the official notice for now.

We know there are a few users that remain on 5.10. One that we've talked to on 
IRC has said that their major blocker is an encoding issue that prevents moving 
to a very modern Perl but 5.14 should be ok. We suspect others are using 5.10 
because their distro provides it. While we don't subject ourselves to the 
guarantees made by the various distros, it seems that the distro that makes the 
longest guarantee, RHEL 
(https://distrowatch.com/table.php?distribution=redhat), will EOL their version 
6.X that provides Perl 5.10 in 2020. If you haven't moved yet, you soon will 
have to anyway. Remember, you can use Perlbrew or Plenv, to manage non-system 
Perl interpreters for you.

We'd like to always encourage our users to keep their Perl interpreters as 
up-to-date as possible. We stopped our increase at 5.14 because of the 
improvements to exception handling, while 5.16 doesn't contain as many changes 
that would materially aid us. One that we would benefit from is the `__SUB__` 
token, a feature that is very handy when writing self-referencing callbacks. 
However that one feature didn't seem enough to justify more movement, yet.

The official Perl core only supports the most recent two Perl releases, which 
are currently 5.28 and 5.26. Many critical bugs have been fixed, unicode 
improvements have been essential, and several new features have been added, 
like postfix dereference and subroutine signatures (still unfortunately 
experimental). By keeping up to date you get these benefits and will not be 
surprised if the Mojolicious Perl version gets bumped up again in the future.

Cheers,

The Mojolicious Core Team

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to