Product SiteDocumentation Site

4. Fedora の変更点 - 開発者向け

4.1. 開発環境の概要

Fedora には、一般的なプログラミング言語、 最新で最適な IDE、 広範囲に及ぶライブラリなど豊富な開発ツールが含まれます。本セクションでは Fedora 14 に関する主要な新機能に記載しています。

4.1.1. 新しいプログラミング言語

Fedora 14 で D 言語のサポートが行われました。D 言語はプログラミング言語の最小限の力で C 言語や C++ のようなハイパフォーマンスを発揮できるプログラミング言語です。Ruby や Python のようなモダンな言語と同様の生産性を発揮します。
詳細については、 D Programming Language をご参照ください。

4.1.2. GNUStep のサポート

GNUstep 開発環境が Fedora に含まれるようになりました。Fedora の上で Cocoa(以前 NeXTSTEP/OpenStep)API およびツールを利用したクロスプラットフォームアプリケーションの開発が簡単になりました。GNUstep の主要な開発言語は Objective-C ですが、GNUstep はそれに以外の言語も利用できます。

4.1.3. その他の改善

  • PythonErlang および Perl、これらの言語環境と NetbeansEclipse 開発環境のバージョンが更新されました。
  • gdb デバッガー新しいコマンドを拡張しました。簡単にトラックダウンすることができ、プログラムやライブラリーのメモリー消費を修正することができます。これによりデバッグ作業のスピードを向上させることができます。
これらの特徴としては、開発者のさらなる可能性を広げる豊富な開発ツール群を取りそろえています。数百に及ぶ開発コンポーネントの変更点の全詳細については Fedora 14 テクニカルノート http://docs.fedoraproject.org をご参照ください。

4.2. ランタイム

4.2.1. boost

boost は C++ ライブラリーで今回のバージョン 4.4 に更新されました。いくつかの変更が含まれています。詳細な情報は次をご覧ください。
いくつかのキーとなる新しいライブラリーとして UML2 FSMs、Ploygons、Factory および Forward adapters、UUID ライブラリーが追加されました。すでに含まれていたライブラリーは更新され、多くの新しい機能が追加され、またパフォーマンス上での改善が行われました。

4.2.2. libjpeg-turbo

libjpeg ライブラリーは libjpeg-turbo ライブラリーに置き換えられました。どちらも同じ API/ABI を提供します。しかし、libjpeg-turbo の方が 25% 程度速度改善がなされています。もっと詳しい情報は Fedora wiki の libjpeg-turbo をご参照ください。

4.3. 開発ツール

4.3.1. D プログラミング言語

D 言語はシステムプログラミング言語です。C/C++ のようなパワーがあり、ハイパフォーマンスで、そして、Ruby や Python のようなモダンなプログラミング言語のプログラマー並みの生産性を発揮することを目標にしています。D 言語はスタティック型でマシン語にコンパイル可能です。多様なパラダイムで、多くのプログラミングスタイルをサポートします。命令実行型で、オブジェクト指向、メタプログラミング可能、そして C言語のような構文スタイルで記述できます。C++ のコンセプトと非常に似ています。
  • LLVM D コンパイラー
    LDC は D プログラミング言語に対するコンパイラーです。これは DMD フロントエンドの最新のものがベースとなっており、バックエンドとしては LLVM です。LLVM は高速で高い寝室のコードを生成するためのモダンなバックエンドを提供します。
  • ライブラリー
    Tango はクロスプラットフォームで動作するオープンソースソフトウェアライブラリーです。 D 言語プログラマーのために D 言語で記述されています。それは多目的使用のための結合力があって総合ライブラリーとして構成されており、ますます多くの D 言語ファンによりで支えられます。広範囲なドキュメントの入手容易性は、ライブラリーへのアクセスしやすさを提供します。そして、このプロジェクトは超一流の機能についてそのままのドキュメント制作することができます。
詳細な情報は、

4.3.2. python

システムの python 2 スタックは、バージョン 2.7 に更新されました。すべての変更点については Whats new in 2.7 をご参照ください。
4.3.2.1. Caveat: PyCObject と警告
Python は C言語による拡張モジュールに対する様々な API を提供します。API の 1つとして PyCObject があります。これは Python 2.7 で廃止されました。しかし、 いくつかのキーモジュールは、まだ移植されておらず置き換えられていません。.
デフォルトで、警告は無視されるので問題を引き起こしません。
しかし、標準的な警告設定をオーバーライドできれば、これらのモジュールに関する問題が分かるかもしれません。特に警告を "エラー" に設定できるならば、これらのモジュールをインポートするとき、Python インタプリターの中止させたり、セグメントフォルトを起こすことが可能です。
errors-for-warnings を有効にする必要があれば、次の無効化を加えてください。 PendingDeprecationWarning は例外を上げているより、むしろ、単にログに記録されるだけです。
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate はバージョン 0.6 に更新されました。SQLAlchemy 0.6 と Firebird データベースのサポート、カスタムテンプレートと python のログ機能の利用など多くの機能が実装されています。新しいバージョンは若干の後方非互換の変更点が含まれています。
  • api.test() とスキーマ比較機能は、現在、URL を最初のパラメーター、リポジトリーを第2のパラメーターとして扱います。
  • python のアップグレード/ダウングレードスクリプトは、migrate_engine magically のインポートを行いません。しかし、エンジンを関数の唯一のパラメータと認めます。 (例: def upgrade(migrate_engine):)
  • Column.alter には current_name がもう存在しません。これは古い名前のカラムです。
詳細な変更点については changelog をご参照ください。

4.3.4. Erlang

Erlang/OTP の新バージョンが Fedora 14 に含まれます。詳細については Fedora wiki 上の Erlang R14 をご参照ください。

4.3.5. gdb

gdb は、.debug ファイルから不必要なインデックスを削除するために強化されました。これにより大幅に gdb の速度を上げるインデックスと入れ替えます。
gdb デバッガーは新しいコマンドに拡張されました。これによりプログラムとライブラリーの中で過度なメモリー利用を突きとめて、準備することをより追跡を簡単にします。この機能は Fedora コントリビューターの David Malcolm によってつくられました、そして、我々はそれが Fedora 14 に特有であると確信しています。
詳細な情報ついては、Fedora wiki 上の Gdb Index をご参照ください。

4.3.6. GNUstep

Fedora の GNUstep アプリケーションを作成することができます。GNUstep は、Nextstep のオープンソース再実装です。GUI に Objective-C プログラミング言語のフレームワークベースを提供します。
Objective-C プログラミング言語は、GNU コンパイラコレクション (gcc) の中に含まれます。
GNUstep をベースとするアプリケーション一覧については List of GNUstep applications から確認することができます。
GNUstep プロジェクトに対する詳細な紹介は GNUstep Introduction をご参照ください。

4.3.7. perl

perl 5.12 の変更点は次の通りです。
  • Perl は、現在、密接に Unicode 標準に従います。その上、今回の Fedora のリリースには標準バージョンとしてバージョン 5.2 が含まれます。
  • 開発者が Perl を拡張する新しい実験的な APIs "pluggable" キーワードと構文があります。
  • 現在、Perl には時間を管理するよりよい仕組みがあります。正確な時間で2038年問題を越えることができます。
  • 新しい構文は、パッケージステートメントの中で開発者が直接バージョン番号を指定することを許可します。
  • Perl にて廃止された機能を使った際のユーザーに対して警告されます。
Perl 5.12.x では、いくつかの新しい機能が追加されました。また、最適化とバグ修正が行われています。変更点に対する完全なリストとしては次の Web で確認できます。

4.3.8. rakudo

Fedora は Rakudo Perl が搭載されます。Perl 6 の実装の1つであり、スペック通りの Parrot 仮想マシンとなります。これを利用し、開発者は Perl 6 対応の新しいアプリケーションを書いたり、既存のアプリケーションを移植することができます。ソフトウェアの追加/削除 をもちいて、rakudo をインストールします。もしくはコマンドラインから yum install rakudo と実行しインストールします。コマンドラインオプションの情報を確認するには man perl6man rakudo と実行してください。
詳細な情報については、 Fedora 14 Feature: Rakudo * をご参照ください。

4.3.9. bash debugger

emacs 上で動く bash debugger の Lisp ソースで emacs-bashdb-el パッケージが Fedora に収録されています。このデバッガーはバージョン 4.1_0.4 に更新されました。

4.3.10. Pyjamas

Fedora 14 に新しく pyjamas に追加されました。Web とデスクトップ向けのリッチインターネットアプリケーション (RIA) の開発プラットフォームです。すべての機能を確認したい場合は pyjs.org をご参照ください。

4.4. GCC

4.4.1. gcc

Fedora 14 には、gcc 4.5 が含まれます。gcc に含まれるさまざまなコンパイラーが含まれます。すべての変更点は Change Logs から確認できます。主な変更点は次の通りです。
4.4.1.1. 廃止されたサポートと機能
特殊なアーキテクチャーのシステムのため、以下のポーティングは廃止されました。
  • IRIX 6.5 以前のリリース (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Tru64 UNIX V5.1 以前のリリース (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • IRIX, Solaris 7, Tru64 UNIX の廃止について詳細についてはアナウンスをご参照ください。
  • 古い IBM RS/6000 製品ラインに含まれる RIOS と RIOS2 プロセッサーにおけるクラシックな POWER アーキテクチャーの実装のサポートは廃止されました。この結果、今後は新しい Power と PowerPC アーキテクチャー向けの実装となっています。
GCC 4.4 では、いくつかのアーキテクチャー向けのサポートが廃止されます。

C99 準拠時にはパフォーマンスが低減されました。

x86 ターゲットにおいて、浮動小数点演算を含んだコードを GCC 4.5 で C99 規格に厳密に準拠してコンパイルすると、以前のバージョンの GCC に比べて明らかに遅くなることがあります。これは規格合致を改善したためで、以前の挙動に戻すには -fexcess-precision=fast (以下を参照) を使用してください。

4.4.2. 最適化の改善

  • -save-temps は、オプションの引数として指定することができます。-save-temps-save-temps=cwd は、一時作業ファイルをオリジナルのソースコードと同じカレントディレクトリーから指定されたディレクトリーへ切り替えることができます。-save-temps=obj-o オプションで指定したファイルを出力する場所を切り替えることができます。
  • デバッグ用のダンプはカレントディレクトリーよりも、オブジェクトファイルと同じディディレクトリーに優先的に作られます。
  • 新しくリンク時の最適化を行う (-flto) が追加されました。このオプションを使った場合、GCC は、それぞれの入力ファイルのバイトコードの代表を生成して、それぞれのオブジェクトファイルで特別なELFセクションにその情報を書きます。
  • 自動並列化パスは、外部ループの並列化までサポートできるように拡張されました。 
  • 現在、GCC は例外処理のコードを最適化しています。
その他の最適化に関して、詳細な情報は changes ページをご参照ください。

4.4.3. 言語仕様の改善

Ada, C, C++, Fortran そして Java に対する新しい言語仕様が実装されました。

4.4.4. 新しいターゲット環境

新しいターゲットプロセッサーには、AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 そして RX プロセッサーファミリーがあります。

4.4.5. インストールの変更点

autotools への移行は、ディレクトリーを多少の人工的に変更する結果になりました。上記の詳細のすべてを確認するには changes のページをご参照ください。

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 には NetBeans IDE 6.8 からの重要な変更があります。
NetBeans IDE 6.9 は NetBeans Platform アプリケーションと Maven を含む OSGi バンドルの開発に対するサポートのために OSGi インターオペラビリティーを導入します。新しい JavaFX コンポーザーを使う JavaFX SDK 1.3 のサポート、JavaFX GUI アプリケーションのユーザーインタフェースを視覚的に作るツール、Java SE アプリケーションにおける Swing GUI ビルダーと同様なものです。また、PHP Zend フレームワークのサポート、Ruby on Rails 3.0 のサポート、Java エディターやJava デバッガーの改善、問題解決などが変更点として挙げられます。
このリリースに対する詳細な情報は次から参照できます。

4.5.2. yydebug

yydebugjay で生成されたパーサーコードのためのデバッガーです。 Fedora に新しく追加されました。すべての詳細を確認するには、cs.rit.edu にある yyDebug の Web サイトをご参照ください。

4.6. Haskell

GHC の変更点は 6.12.3 から確認できます。 haskell-platform 2010.2.0.0 が stable release です。
若干の変更点は、ghc-rpm-macros と cabal2spec パッケージに改善がなされています。また、-doc サブパッケージは -devel にマージされて収録されています。
Fedora 上での Haskell 環境の簡単なインストール方法は、Anaconda か YUM のグループ名で Haskell を選択することです。
 yum install @haskell

4.7. Eclipse

eclipse は Helios リリースにアップグレードされました。新機能として、より良い C/C++サポート、appストア、 gitサポート、Webツールプラットフォーム、 より良いJavaScript サポートなど多くを含んでいます。 詳細はこちらから確認できます。 http://www.eclipse.org/org/press-release/20100623_heliosrelease.php
詳しい情報:

4.8. カーネル

Fedora 14 には Linux カーネル 2.6.35 が搭載されています。