Product SiteDocumentation Site

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

4.1. 開発

4.1.1. Scratch

Fedora 19 には、IT Media LabLifelong Kindergarten Group で開発されたグラフィカルプログラミング環境である Scratch が含まれます。Scratch によって、あなたはご自分のインタラクティブなストーリー、ゲーム、アニメーション、音楽、そしてアートを簡単に作ることができます。
Scratch をインストールするには、
yum install scratch
そして、デスクトップのアプリケーションメニュー (プログラミングの下)から実行するか、あるいは、ターミナルウインドウで `scratch` とタイプください。

4.1.2. 新しい Ruby 2.0.0

Fedora 19 には Ruby が含まれます。新リリースは、コア言語への追加、新しいビルトインライブラリー、デバッグサポートの改善、そして性能向上があります。
Ruby プロジェクトによる、詳細な変更点と互換性ガイドラインは、 http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/ にあるリリースアナウンスメントにあります。

4.1.3. JRuby 1.7

JRuby が、バージョン 1.7 に更新され、パッケージングが改善されました。このリリースの詳細は、 http://jruby.org/2012/10/22/jruby-1-7-0.html を参照下さい。

4.1.4. Erlang

汎用の並列プログラミング言語とランタイムである Erlang が、 R16Bに更新されました。完全なチェンジログは、 http://www.erlang.org/download/otp_src_R16A_RELEASE_CANDIDATE.readmehttp://www.erlang.org/download/otp_src_R16B.readme にあります。ドキュメントは、 http://vimeo.com/44790646http://www.erlang.org/download_release/17 にあります。

4.1.5. Boost が 1.53 に更新されました。

Fedora 19 には、 Boost バージョン1.53 が含まれます。 Fedora 18 に含まれた 1.50 と比べ、 Boost 1.53 には新しいライブラリーがいくつかあります。
コンテキストスイッチのための Context
コルーチンライブラリー Coroutine
ロック無しのデータ構造 Lockfree
浮動小数点数、整数、そして、有理数演算のための拡張精度演算タイプ Multiprecision
C++11-style atomic<> である Atomic
常微分方程式を解くための Odeint
他の多くのライブラリーも更新されました。 Boost 1.51.0, 1.52.0 と 1.53.0 の詳細なリリースノートがあります。
Boost 1.50.0 Release Notes
Boost 1.51.0 Release Notes:
Boost 1.52.0 Release Notes:
Boost 1.53.0 Release Notes

後方互換性

Boost 1.50 との API および ABI 互換性は保証されないことに注意下さい。古いバージョンの Boost 向けにビルドされたサードパーティアプリケーションは、Boost 1.53 で動くためには、再コンパイル、あるいはパッチが必要なことがあります。

4.1.6. GNU Guile がバージョン 2.0.7 に更新されました。

GNU Guile がバージョン 2.0.7 に更新されました。レガシー guile に依存するサードパーティアプリケーションは、 compat-guile18 を使うことができます。 Guile 2 について詳しくは、 http://www.gnu.org/software/guile/download.html#releases を参照下さい。

4.1.7. Python

4.1.7.1. PillowPIL に代わります
Python Imaging Library または PIL は、 アクティブに維持されているフォークで、Python 3 互換モジュールもある Pillow に代わります。 Pillow はそのまま PIL に置き換えることができますが、モジュールのインポートだけは、
from PIL import <Module>
シンタックスが必要です。単純に以下の様ではいけません。
 import <Module>
この変更は、以前の PIL との後方互換性を保ちます。ドキュメントは https://github.com/python-imaging/Pillow/ にあります。
4.1.7.2. PyXML は削除され、 stdlib を使いましょう
xml を使用する Python プログラマーは、その内のいくつかが以前と違う動きをすることに気がつくかもしれません。これは Fedora が PyXML モジュールを同梱しなくなったためです。この変更により、python stdlib xml モジュールが、プログラマーから見えるようになりました。PyXMLstdlib コードをあまりメンテナンスされていない自己のコードに置き換えました。そのため、PyXML を捨てることにより、stdlib が確実に優先されます。

4.2. 開発ツール

4.2.1. crtools を使ったチェックポイントとリストア

CRIU (Checkpoint/Restore in User-space) プロジェクトは、プロセスとプロセスグループのチェックポイントと回復の、ユーザー空間における実装を提供します。このリリースに含まれるユーザー空間のツールである crtools を使うと、プロセスをチェックポイントして、後から(例えば、クラッシュの後で)それを再開始することができます。あるいは、チェックポイントしたプロセスやプロセスグループを、他のシステムに移行することができます。CRIU は、できる限り透過的であることを目標としますから、チェックポイント対象のプロセスのインストルメンテーションや再コンパイルは不要です。
プロセスをダンプするには、以下のコマンドを使います。
        crtools dump -D /path/to/dump-directory -t <PID>
プロセスをリストアするには、以下のコマンドを使います。
        crtools restore -D /path/to/dump-directory -t <PID>
CRIU プロジェクトは、http://criu.org にあります。

4.2.2. Developer's Assistant

新しい開発者は、いろいろな言語を使ってすばやくプロジェクトを始めるためのツールとフレームワークである、Developer's Assistant を使うことですばやいスタートをきることができるでしょう。devassistant パッケージは、現在以下をサポートします。
CC++
djangoflask を含むpython
javajsfmaven を含みます。

4.2.3. MEMSTOMP

Fedora 19 は、 MEMSTOMP を含みます。これは、アプリケーションに事前ロードする DSO であり、valgrind より低い実行時コストで、関数への引数のメモリーがオーバーラップすることを検出できます。

4.2.4. 新しいツール

recode によって、ファイルを異なるキャラクターセットと使用法に応じて変換することができます。
comdemod は、大規模コードベースのリファクタリングを助けるツールです。
jimtcl, 軽量の Tcl 実装です。
fox は、グラフィカルユーザーインターフェースを簡単かつ効率的に開発するための C++ ベースのツールキットです。

4.3. GCC ツール

4.3.1. GCC 4.8.x

Fedora 19 では, GCC 4.8.x がデフォルト GCC として含まれます。また、すべての Fedora パッケージは GCC 4.8.x (そして GLIBC 2.17; 以下を参照ください) で再ビルドされました。
ユーザーは、コンパイルされたコードの改善に気がつかれるでしょう。また、新機能である、C++11 と C11 サポートの改善や、ベクトル化サポートの改善などを使うこともできます。
GCC の更新は、 MinGW クロスコンパイラーも含みます。 最も重要な変更の1つは、win64 ターゲットのときのデフォルトの例外ハンドリングモデルが、 SjLj から SEH になったことです。win32 ターゲットは以前と同じく SjLj 例外ハンドリングモデルを使います。これにより、 例外ハンドリングモデルを使うすべてのwin64 ターゲット用のバイナリーが、 libgcc_s_sjlj-1.dll ではなく、libgcc_s_seh-1.dll に依存するようになります。
GCC 4.8.x, の変更点について詳しくは、 http://gcc.gnu.org/gcc-4.8/changes.html を参照ください。

4.3.2. GLIBC 2.17

Fedora 19 では、デフォルトGLIBC として、 GLIBC 2.17 が含まれます。すべての Fedora パッケージは、 GLIBC 2.17 (そして GCC 4.8.x; 以前に述べたように) を使って再ビルドされました。
GLIBC 2.17 の変更点について詳しくは、 http://sourceware.org/ml/libc-announce/2012/msg00001.html を参照ください。

4.4. D

4.5. Haskell

GHC は 7.4.2 に, Haskell プラットフォームは 2012.4 に更新されました。他にも多くのライブラリーが更新されました。

4.6. Java

4.6.1. Java 8 テクニカルプレビュー

このリリースの Fedora は、 Java 8 のテクニカルプレビューが含まれます。それは、 java-1.8.0-openjdkjava-1.8.0-openjdk-devel パッケージで提供されます。
Java 7 は、このリリースのデフォルトの JDK のままです。 Java 8OpenJDK8 は、みんなが安定した Java 7 を日々の作業で使うのと並行して、開発者が次のバージョンの Java にむけてアプリケーションを開発とテストできるようにするためです。
OpenJDK8 の新機能は、 http://openjdk.java.net/projects/jdk8/features/ にリストされています。

4.6.2. Maven による簡単なパッケージング

Apache Maven プロジェクトによる、改善され簡単な RPM パッケージの作成法が導入されました。詳細と、古い spec ファイルからの変換レシピは、http://mizdebsk.fedorapeople.org/xmvn/cookbook/ にあります。

4.6.3. Thermostat 1.0

Fedora 19 は、 Thermostat 1.0 を含みます。これは、OpenJDK のための監視、インスツトゥルメント、そして serviceability ツールである thermostat の、最初の安定した API リリースです。
使い方は、 http://icedtea.classpath.org/wiki/Thermostat/UserGuide にある Thermostat ユーザーガイドを参照ください。

4.7. ウェブ開発

4.7.1. PHP が 5.5.0 に更新されました

著名なプログラミング言語である PHP が、バージョン 5.5.0 に更新されました。Generators サポート, 新しい Zend Optimizer+ 命令コードキャッシュサポートなどの多くの新機能と、多数の性能改善が含まれます。
PHP 5.4.x から PHP 5.5.x に移行するための完全な詳細について、PHP 開発者は /usr/share/doc/php-common-*/NEWS を読んで変更点を理解し、http://www.php.net/manual/en/migration55.php にある移行ガイドを参照ください。

4.7.2. Node.js

Fedora 19 に、JavaScript プログラミング言語を使って、高速でスケーラブルなネットワークアプリケーションを開発するための JavaScript ランタイム環境である Node.js が加わりました。また、フリーあるいはオープンソースライセンスの 20,000 以上のライブラリーとアプリケーションへのアクセスを提供する npm パッケージマネージャーも加わりました。
Node.js に関する詳細は、http://nodejs.org または nodejs-docs パッケージにあるドキュメントを確認ください。
利用可能なライブラリおよびプログラムの一覧を含む、npm の詳細は http://npmjs.org/ を参照ください。

4.7.3. Django 1.5

Fedora 19 が人気のある Django ウェブアプリケーションフレームワークのバージョン 1.5 を特徴としています。このバージョンは、カスタム認証機能、改善されたキャッシュサポート、Django テンプレートの中で JavaScript テンプレートを使いやすくする新しいテンプレートタグ、などを提供しやすくする改善が行われました。
完全な詳細は https://docs.djangoproject.com/en/dev/releases/1.5/ にある Django 1.5 リリースノートを確認ください。