Product SiteDocumentation Site

4. Changes in Fedora for Developers

4.1. Development

4.1.1. Perl

4.1.1.1. Perl updated to 5.16
Perl 5.16 introduces a number of significant changes:
4.1.1.1.1. New Features
  • Unicode 6.1
  • More consistent eval controlled with unicode_eval and evalbytes feature
  • 2- and 3-argument substr called in left-value context is evaluted even after changing original string
  • New T_*REF_REFCOUNT_FIXED XS typemap fixing reference counter decremetion
  • New is_utf8_char_buf XS-callable function replaces broken is_utf8_char function
  • $$ variable is writable
  • Improved debugger: tracing mode can be restricted to certain level, breakpoints can be disabled temporarily, breakpoints can be set by file name
  • sort subroutines can be autoloaded
  • $[ variable is provided by arybase module
  • mmaped PerlIO layer is now a separate module PerlIO::mmap
4.1.1.1.2. Deprecated Features
  • Accessing Unicode database files directly is deprecated now; use Unicode::UCD instead
  • Version::Requirements is deprecated in favor of CPAN::Meta::Requirements
4.1.1.1.3. Incompatible Changes
  • Special blocks (e.g. BEGIN) are called in void context
  • Unoverloaded stringification of regular expression does not return the expression literal
  • T_DATAUNIT and T_CALLBACK XS typemaps removed
  • User defined case-changing has been removed in favor of Unicode::Casing
  • XSUB C functions are static now and they are not exported from their object files
  • Read-only references cannot be weaken
  • $$, $<, $>, $(, and $) do not cache their value
  • Devel::DProf, Shell have been removed from Perl core
  • perl4 libraries removed: abbrev.pl, assert.pl, bigfloat.pl, bigint.pl, bigrat.pl, cacheout.pl, complete.pl, ctime.pl, dotsh.pl, exceptions.pl, fastcwd.pl, flush.pl, getcwd.pl, getopt.pl, getopts.pl, hostname.pl, importenv.pl, lib/find{,depth}.pl, look.pl, newgetopt.pl, open2.pl, open3.pl, pwd.pl, hellwords.pl, stat.pl, tainted.pl, termcap.pl, timelocal.pl
4.1.1.2. PCRE Libraries updated to 8.30
Fedora 18 will provide PCRE ( Perl-Compatible Regular Expression ) libraries of version 8.30 or newer . This brings UTF-16 support and API changes, which are documented by the changelog and NEWS provided in /usr/share/doc/pcre*

4.1.2. Python updated to 3.3

The system Python 3 stack has been upgraded to 3.3 (the system Python 2 stack remains at 2.7 ), bringing in hundreds of fixes and tweaks; for a list of changes see http://docs.python.org/dev/whatsnew/3.3.html

4.1.3. Ruby on Rails framework updated

Fedora 18 will provide Ruby on Rails 3.2, the latest version of the Ruby on Rails framework. Developers are able to use the latest Ruby on Rails features, which are documented in the project's release notes at http://guides.rubyonrails.org/3_2_release_notes.html and http://guides.rubyonrails.org/3_1_release_notes.html

4.1.4. Clojure joined by Leiningen and tools

Fedora 18 now ships a more complete Clojure programming stack, including the build tool Leiningen. This will make it easier to package other Clojure libraries in the future.

4.1.5. Git prompt change

An update to git in Fedora 18 has moved the file used by bash to include git branch information in the prompt. Users that take advantage of the git prompt in their bash configuration should add source /usr/share/doc/git-1.7.12/contrib/completion/git-prompt.sh to their ~/.bashrc in addition to PS1='[\u@\h`__git_ps1` \W]\$ '

4.2. Development Tools

4.2.1. boost gets up to speed

Fedora 18 will include Boost version 1.50 . The popular collection of C libraries is updated to the newest available version with each Fedora release.

4.2.2. Systemtap 2.0

Systemtap 2.0 includes a new prototype backend, which uses DynInst to instrument a user's own binaries at runtime. This optional alternative backend does not use kernel modules, and does not require root privileges, but is restricted with respect to the kinds of probes and other constructs that a script may use.

4.2.3. Tracing with LTTng

Developers looking to improve their applications will find that Fedora 18's lttng-tools and ltt-ust packages provide fast and efficient tracing. The tracer allows easy correlation of userspace and kernel traces, if the latter is available. Boasting a nanosecond-precision timestamp, LTTng is especially useful when searching for elusive latencies. Get started with the project's documentation at http://lttng.org/quickstart

4.2.4. Improved Crash reports

4.2.4.1. Debuginfo included by default
Fedora 18 ships with a small subset of debug information by default. Full debug information is still available in the debuginfo packages.
4.2.4.2. Debuginfo compressed by DWARF
Debuginfo will be post-processed by the DWARF compressor tool dwz to reduce size of the *.debug files. Developers may run this same program on their binaries.
4.2.4.3. Simplified crash reporting via ABRT Server
Fedora's bug reporting tool, ABRT, now uses new, simplified way of reporting user problems. These reports are now handled by ABRT Server, which also provides statistics and clustering of the reports, giving maintainers more accurate data about the problem.

4.2.5. IPython updated

IPython has been updated to version 0.13 and notable features and head-ups are: The Notebook has a new user interface and has many new features like auto-folding of very long lines, uploading new notebooks to the dashboard, manage started clusters and improved tooltips. The notebook format has changed and when you want to share your notebook with users of older version, there is a conversion script available. New cell magics like %%bash, %%ruby, %%timeit and many others. The Qt console has improved menus and can directly display jpeg images.

4.3. GCC Tools

4.3.1. DragonEgg optimizes GCC

DragonEgg is a plugin for the GCC compilers to allow use of the LLVM optimization and code generation framework. DragonEgg provides software developers with more optimization and code generation options for use with the GCC compilers. DragonEgg also allows GCC to be used for cross-compilation to target architectures supported by LLVM without requiring any special cross-compilation compiler packages.

4.4. D

The D programming language is available in Fedora 18. D is a modern language with high performance near C/C++ with a simple syntax. C/C++ and Java developers can easily migrate to D. Fedora 18 provides more updates to the D toolkit:
  • ldc compiler to latest stable compiler
  • build against llvm 3.1
  • update standard library to dmd front-end 2.060
  • update gtkd package to support gtk3
  • update derelict package to version 3
  • add DSQLITE package for use with sqlite in D
  • add gl3n package for OpenGL Maths for D
  • add glamour package: an OpenGL wrapper for the D programming language.

4.5. Haskell

GHC has been updated to version 7.4.1, haskell-platform to 2012.2.0.0, and many of the rest of the 200 packages have been updated.
Newly added packages include Agda, cabal-rpm, and snap-server.