Mailinglist Archive: opensuse (929 mails)

< Previous Next >
[opensuse] Re: perl 5.18 incompat "bug"
Carlos E. R. wrote:
I see hundreds of these in the warn log when I fetch email:
Couple issues:

Perl-5.18 Incompatible Features on by default

perl-5.18 released with an incompatible feature turned on by
default -- "experimental warnings". Additionally, some,
previously documented features were deprecated to 'experimental'
statul, meaning, "not for use in released code".

Experimental features may be removed without Notice

Experimental features may be changed or removed without notice.

"Experimental warnings" feature enabled by default

5.18 included a new feature "experimental warnings" which wasn't
compatible with previous code which causes in that it emits
runtime diagnostics in previous programs that ran correctly.

If you have a security or privileged program that ran with
a setting to make warnings FATAL at runtime, the new feature
can cause termination of programs that may have run fine
under 5.16.x or earlier. If your system relied on such for
normal function -- expected abnormal function when upgrading to

Features may be made "EXPERIMENTAL", *WITHOUT NOTICE*

At least one feature, not listed as experimental in 5.16
was "lexical $_" -- using "my $_" to create a local copy
of $_ that wouldn't propagate outside the lexical(physical)
scope. Effectively this removed it as a 'feature' and
added it as 'experimental', where it may be changed or removed
without notice.

Experimental status defaults to "forever"

I personally, didn't know that features released as experimental
remained experimental, by default, "forever". I.e. I had assumed
that if they were in the next major version the same way -- that
the experiment had "succeeded", and it was now part of perl and
wouldn't be removed without an advance version-notification as
specified in 'perlpolicy's deprecation procedure.

My result & bad design on OpenSuse rpms.

As a result I've yet to update to 5.18 and still run 5.16(.3) on
my suse 13.1 system. While this isn't too much of a problem with
most perl and cpan released modules -- it is a problem with any
suse rpm's which hard code versions into all related products

Deliberate breakage: Example gvim

Example: GVim/Vim -- cannot be used to edit text if the right
version of perl is not present on your system. This also applies to ruby and python.

That was a deliberate choice made by opensuse packages
to disable usage of programs by users who try to use their own
updated packages instead of official suse versions on your system.

Even Windows allows gvim to function as a text editor if perl/python
or ruby are not present or are the wrong version.

Note. Fortunately, gvim is doesn't have to be that way -- my version
will run with or without Gvim/ruby and python. If they are there,
they will be used. If they are not there, it still runs but you can't
use the built-in language interpreters if they are not present on your
system (duh!) -- but, importantly, gvim still runs and does everything

Unfortunately OSuse refuses to package it that way (it's an option
at build time).

There are other areas of deliberate breakage and deliberate
(malicious) traps for those who don't do things the official way.

In so many cases, like the Vim/Gvim case, the breakage need not
exist, but was made to break by choice

Great design principle: because someone writes new code, they can
arbitrarily break previous version compatibility in order to give
users no choice about how to do things. FWIW -- it may be that
they must do so as a result of them being purchased by Attachmate.

Attachmate seems to specializes in "appliances", which, generally,
are not very user customizable

A friendly "FYI" from the "department of things that bug me" Dept.


To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >