Product SiteDocumentation Site

4. Changes in Fedora for Developers

4.1. Development

Fedora incorporates a rich set of development tools. This section describes the enhancement in development tools available in Fedora 15.

4.2. Developer Tools

4.2.1. Boost

boost provides a set of portable, peer-reviewed, C++ libraries. In Fedora 15, Boost is brought up to date with the current upstream, version 1.46.
With every new release of Boost come new components and libraries. For instance, Boost 1.46 brings ICL, and Boost 1.45 had already brought MSM and Polygon.
Moreover, the existing components and libraries are enhanced with new features and bug fixes. For instance, the Boost.Math components have now become better than the GSL for support to statistical analysis.
For full details, see the Boost pages at http://www.boost.org/

4.2.2. Erlang

erlang and the associated packages have been updated to R14B. This release contains a number of performance improvements, especially around threads, as well as a number of bug fixes. More details may be found in the readme.

4.2.3. gdb

This new GDB release 7.3 together with Archer and Fedora extensions improves debugging experience on Fedora by making the debugger more powerful. The majority of these features were written by Red Hat engineers, thus benefiting all gdb users. New features for the Fedora 15 release are not limited to:
  • Support for breakpoints at SystemTap markers (probes)
  • Support for using labels in the program's source
  • OpenCL language debugging support
  • Thread debugging of core dumps - printing pthread_t of threads and their TLS variables
  • Python scripting improvements not limited to:
    • GDB values in Python are now callable if the value represents a function address.
    • New module gdb.types for inferior types.
    • New module gdb.printing for writing and registering pretty-printers.
More features are listed upstream above the line "*** Changes in GDB 7.2".
Numerous important packages within Fedora are pre-built with SystemTap static markers, and these can now be used as the target for breakpoints in gdb.

4.2.4. Mono

mono has been updated to 2.8.1. The 2.8 release of Mono contains a large number of new features including:
  • C# 4.1
  1. New garbage collector
  2. New frameworks from Mono MIT X11 and Microsoft MS-PL/Apache2
  3. Performance improvements
For compete details refer to the release notes at http://www.mono-project.com/news/

4.2.5. OCaml

Fedora 15 includes OCaml 3.12, a major new release of the OCaml language, the camlp4 macro language, libraries, and CDuce for XML processing.
New language features include:
  • modules are now first-class values
  • nested module open
  • open record notation
  • mark OO methods which must be overridden in subclasses
  • limited support for delimited overloading in the language
camlp4 and camlp5 macro languages have been revised and extended. The changes are completely backwards compatible. For all details refer to https://fedoraproject.org/wiki/Features/OCaml3.12

4.2.6. Python

The Python 3 stack in Fedora 15 updates from 3.1 to 3.2 (the system Python 2 stack remains at 2.7). Python 3.2 is the latest release of the Python 3 language which comes with hundreds of fixes and tweaks throughout. For all details refer to https://fedoraproject.org/wiki/Features/Python_3.2.

4.2.7. Rails

The Ruby on Rails gems in Fedora 15 updates from 2.3.8 to 3.0.3. Rails 3 is a large update to the Ruby on Rails web framework. It brings many new features such as a polished routing API, new activemailer and activerecord APIs, and many more new enhancements. Since its a major version update there are some API incompatibilities between Rails 3 and Rails 2.3.8. For the details refer to https://fedoraproject.org/wiki/Features/Rails_3.0.3.

4.2.8. Tryton

Tryton, a three-tier general purpose application platform and basis for a ERP system, is available in Fedora 15.
The core of Tryton (also called Tryton kernel) provides all the necessary functionalities for a complete application framework: data persistence, extensive modularity, users management (authentication, fine grained control for data access, handling of concurrent access of resources), workflow and report engines, web services and internationalisation. Thus constituting a complete application platform which can be used for any relevant purpose. Base Modules
Currently, the main modules available for Tryton cover the following fields of activity:
  • Accounting
  • Invoicing
  • Sale Management
  • Purchase Management
  • Analytic Accounting
  • Inventory Management

4.3. GCC

Fedora 15 comes with gcc 4.6.0 as primary compiler. Users will be able to experience compiled code improvements and use the newly added features, such as improved C++0x support, support for the Go language, REAL*16 support in Fortran, etc. Refer to http://gcc.gnu.org/gcc-4.6/changes.html and https://fedoraproject.org/wiki/Features/GCC46 for all user changes.

4.4. Java

4.4.1. IcedTea6 1.10

Some of the major improvements in 1.10 include:
  • Many graphics improvements and bug fixes, including support for shaped/translucent windows and hw/lw mixing
  • Performance gains with PKCS#11 provider
  • Numerous other VM stability and performance improvements that come with HotSpot 20
IcedTea6 1.10 provides many performance and stability and performance benefits over the 1.8 and 1.9 series that are in Fedora 13 and 14 respectively.

4.4.2. IcedTea-Web

In addition to the IcedTea6 update, another major change on the Java front is the introduction of IcedTea-Web in Fedora. In previous releases, the Java plugin and Web Start implementations were packaged with the java-1.6.0-openjdk RPM. Starting with 1.10, the plugin and Web Start implementations are now developed independently as part of a separate project known as IcedTea-Web.
In addition to numerous bug fixes, some the major feature improvements in IcedTea-Web include:
  • NetX and plugin configuration can now be specified via a deployment.properties file
  • System-level as well as user-level deployment.properties files with locked configuration are supported
  • Applications and applets can now have a Look and Feel different from rest of IcedTea-Web
  • Native directories are correctly cleaned on exit
  • Cached files with special characters in file names are now handled correctly
  • Interfaces javax.jnlp.IntegrationService and javax.jnlp.DownloadService2 are now available
  • javaws now supports a new -Xclearcache option
  • Applications with non-public main classes are now supported.
  • JNLP files containing <component-desc> as well as <application-desc> will now work
  • JNLP files referenced in the applet tag are now parsed to detect applet properties
  • Applets are now double-buffered to eliminate flicker in ones that do heavy drawing
Not only does IcedTea-Web bring the above improvements to Fedora, it will also make bug fix turn-around time much shorter going forward, as it would no longer require a JDK RPM re-spin.

4.4.3. Maven

Maven is Java project management, project comprehension and build system tool.
Fedora 15 comes with Maven version 3.0. It offers better stability and performance compared to previous versions, but the biggest changes shouldn't be noticed by users. Most work has been happening under the hood to simplify writing Maven plugins and further improve performance by building projects in parallel. It includes a new Maven API for component configuration, many improvements and bug fixes. Users of Maven are encouraged to read the Maven 3 Upstream Release Notes
Fedora 15 still provides maven2 package to support backward compatibility where needed.

4.5. Haskell

4.5.1. GHC

ghc has been updated to 7.0.2, a new major version with many new features.

4.5.2. Haskell Platform

haskell-platform has been updated to the latest stable 2011.2.0.0 release.

4.5.3. New packages

New packages include pandoc (markup converter), bluetile (window manager), and over 35 new libraries.

4.6. Eclipse

4.6.1. eclipse-ptp

New to Fedora 15 is the Eclipse Parallel Tools Platform. PTP provides a parallel tools IDE, debugger and integration with a range of parallel tools. For details, refer to http://www.eclipse.org/ptp/