Product SiteDocumentation Site

5. Changes in Fedora for Developers

5.1. Development

5.1.1. Perl 5.22

The version of Perl in Fedora 23 is now 5.22
New Features:
  • Bitwise operators allows to perform bit-based operation on strings.
  • Double-diamond operator allows to process script arguments as file names safely.
  • Regular expression operators \b{} and \B{} allow to match character boundaries according to Unicode rules.
  • Stricter regular syntax rules can be enabled with use re 'strict'.
  • Unicode 7.0 is supported.
  • Variables and subroutines can now be aliased by assigning to a reference.
  • fileno() function works on directory handles now.
  • Special floating point values infinity and non-a-number are more robustly propagated in computations.
  • Hexadecimal floating point literals are supported and printf "%a" can print them.
  • Class and method name look-up for identifiers known and compile-time is faster now.
  • Computing lenght of byte-strings is faster.
  • Hash look-ups where the key is a constant are faster.
  • New perlunicook manual with examples of handling Unicode in Perl.
  • sync_locale() XS function allows to notify interpreter that the locale had changed.
Changes:
  • Packing infinity and not-a-number values into a character results into a fatal error.
  • ampersand and backslash ampersand prototype symbols accepts only anonymous subroutines.
  • Deprecated encoding pragma is now limited to lexical scope.
  • List slices return an empty list only if the original list was empty.
  • \N{} with a sequence of multiple spaces results into a fatal error.
  • Importing functions from UNIVERSAL module results into a fatal error.
  • Splitting (? and (* tokens in regular expressions results into a fatal error.
  • Omitting % and @ symbols before hash and array identifiers is not allows anymore.
  • $! error string out of use locale scope is in English now.
  • $! error string is marked as UTF-8-encoded when appropriate.
  • Using m?PATTERN? expression without leading m results into error now.
  • Using defined() operator on an array or a hash results into fatal error now.
  • Using a hash or an array as an reference results into fatal error now.
  • Setting ${^ENCODING} to an defined value is deprecated. Scripts should be written in UTF-8 now.
  • Multiple use of /x regular expression modifier is deprecated.
  • Literal left curly bracket should be escaped in regular expressions.
  • B module has new classes reflecting changes in perl internals.
  • Accessing CvPADLIST in on an XSUB is forbidden.
  • Internal representation of SVt_NV type has changed.
  • PADNAME and PADNAMELIST types are no longer aliases to SV and AV.
Removed features:
  • CGI and Module::Build modules have been removed from core perl distribution.
  • find2perl, s2p, and a2p' tools have been removed from core perl distribution.
  • Perl_tmps_grow() XS function has been removed.
  • SETsv and SETsvUN() macros have been removed.
For More Information please visit:

5.1.2. Fedora is moving to Python 3

Fedora 23 continues the move to Python 3 as the default python interpreter. Critical system components built using python, such as the Anaconda installer, the dnf package manager, and more have been migrated to the newer Python release.
Packaged Python modules and utilities are available in Python 3 versions wherever upstream supports it.
Python 2.7 (latest Python 2 release, which we also have in Fedora) is currently in maintenance mode only, which means upstream only accepts bugfixes and security fixes, but no new features are being implemented. Python 2.7 is the last minor release of Python 2, with upstream support until 2020. Python 3, on the other hand, is actively developed and new features are being added every release. Moreover, there is currently no end of support date for Python 3.
For more details of Fedora's Python migration plan, please visit: Python 3 default change in Fedora 23

/usr/bin/python

The python executable will not be installed by default on many Fedora 23 systems. The Python project, in PEP 0394, recommends that /usr/bin/python remain associated with Python 2, which may not be installed.
Users with scripts or similar that require /usr/bin/python can install it, or use the new /usr/bin/python3 interpreter.

5.1.3. Mono upgrade to 4.0

Support for Mono versions 3.0 and 2.10 has been discontinued. No further development of bug fixing is planned for those branches. Mono 4 is the active branch and has many improvements.
For details on the current Mono release, See Upstream notes

5.2. Development Tools

5.2.1. Eclipse

Eclipse in Fedora has had a major update to the Mars (4.5) release. Some new key features in this release include:
Brand new docker for managing docker containers and images.
Support for the git flow branching model within the IDE.
A new Launch Bar for C/C++ projects that highly simplifies launching your projects either on the local machine or on a remote device.
Full details of the release are available in the upstream projects' release notes, which are available from the following locations:
Eclipse Platform and Java Tooling: https://www.eclipse.org/eclipse/news/4.5/
Eclipse C/C++ Development Tools: https://wiki.eclipse.org/CDT/User/NewIn87
Eclipse Linux Tools: https://wiki.eclipse.org/Linux_Tools_Project/News/NewIn40
Eclipse Git Support: https://wiki.eclipse.org/EGit/New_and_Noteworthy/4.0

5.3. GCC Tools

5.3.1. boost 1.59.0

Fedora 23 includes Boost 1.59.0. For information on changes in recent Boost releases, please visit:
http://www.boost.org/users/history/version_1_58_0.html
http://www.boost.org/users/history/version_1_57_0.html
http://www.boost.org/users/history/version_1_56_0.html