Product SiteDocumentation Site

4. Fedora 针对开发人员所做的变更

4.1. 开发

4.1.1. Scratch

Fedora 19 包含了 Scratch,由IT 媒体实验室(IT Media Lab)终身幼稚园团队(Lifelong Kindergarten Group)创造的图形编程环境。Scratch 使您可以容易地创造自己的交互式故事、游戏、动画、音乐以及艺术作品。
安装 Scratch
        yum install scratch
既可以从桌面应用程序菜单运行(位于编程菜单),也可以在终端窗口输入“scratch”。

4.1.2. 新版 Ruby 2.0.0

Ruby 被包含在 Fedora 19 中。新发布包含语言核心的扩展,新的内建库,改善了除错支持以及性能提升。
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,针对浮点数、整数和有理数运算的扩展精度算术类型
Atomic 是一个 C++11 风格的原子操作函数<>
Odeint,用于解常微分方程
其它很多库也有更新。针对 Boost 1.51.0,1.52.0 和 1.53.0 均有详细的发行注记:
Boost 1.50.0 发行注记
Boost 1.51.0 发行注记
Boost 1.52.0 发行注记
Boost 1.53.0 发行注记

向后兼容性

注意:不保证与 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. Pillow 替代了 PIL
The Python Imaging Library, or PIL, has been replaced with Pillow, an actively maintained fork, which also offers Python 3 compatible modules. Pillow is a drop-in replacement for PIL, except that importing modules now requires
          from PIL import <Module>
语法,而非简单地
          import <Module>
这种变化并不会破坏与旧有 PIL 的向后兼容性。文档位于 https://github.com/python-imaging/Pillow/
4.1.7.2. PyXML 被移除,使用 stdlib
使用 xml 模块的 Python 程序员应该会发现该模块的部分与之前工作方式不同。这是因为 Fedora 不再提供 PyXML。这样可以让 stdlib xml 模块对程序员可见。PyXML 以前会用其自身缺少维护的代码代替 stdlib 的代码,因此丢弃 PyXML 的做法对于实现 stdlib 的功能是可取的。

4.2. 开发工具

4.2.1. 用 crtools 创建检查点并恢复

The CRIU (Checkpoint/Restore in User-space) project offers a user-space implementation of process and process group checkpoint/restore. With the user-space tools crtools available in this release it is possible to checkpoint processes and restore them at a later time again (e.g. after a crash) or migrate the checkpointed process or process group to another system. CRIU aims to be as transparent as possible so that no instrumentation or re-compilation of the process to be checkpointed is necessary.
要转储一个进程,使用以下命令:
        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. 开发者助手

新进开发者可以通过开发者助手快速上手,它包含了一组适用于快速启动项目的工具,支持多种语言和框架。目前 devassistant 支持:
CC++
python 包括 djangoflask
java 包括 jsfmaven

4.2.3. MEMSTOMP

Fedora 19 提供 MEMSTOMP 软件包,一个可由应用程序预置的动态共享库,用来发现位于部分函数中的内存参数重叠,其运行时开销比 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 交叉编译器。一个最重要的变化是在 win64 目标上默认异常处理模型从 SjLj 变为 SEHwin32 目标仍然使用 SjLj 异常处理模型。这将导致所有 win64 目标上使用了异常处理的二进制文件依赖libgcc_s_seh-1.dll 而不是 libgcc_s_sjlj-1.dll
有关 GCC 4.8.x 变更的详细信息,请访问 http://gcc.gnu.org/gcc-4.8/changes.html

4.3.2. GLIBC 2.17

截至 Fedora 19,GLIBC 2.17 是 GLIBC 的默认版本。所有 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 Platform 更新至 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 仍然是本次发行版中默认的 JDKJava 8OpenJDK8 的加入是为了让开发人员为面向下一版本的 Java 进行程序开发和测试,而同时又可以让用户日常继续使用稳定版 Java 7
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, 该软件的首个 API 稳定版本,一个集监控、测试和操作于一身的 OpenJDK 工具。
有关使用说明,可参考位于 http://icedtea.classpath.org/wiki/Thermostat/UserGuideThermostat 用户手册。

4.7. Web 开发

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现已包含Node.js 一个用JavaScript语言来编写高效、易扩充的网站应用程序的JavaScript运行环境。npm 包管理器也被包含在Fedora内,它提供了超过 20,000 个在自由且开源的协议下发布的库和程序。
有关 Node.js 的更多信息可访问 http://nodejs.org 或阅读 nodejs-docs 软件包内的文档。
有关 npm 的更多信息,包括可用库和程序的目录,可访问 http://npmjs.org/

4.7.3. Django 1.5

Fedora 19 采用流行的 Django 网络应用框架 1.5 版。该版本的改进有:让提供自定义验证功能更加容易,改进了缓存支持,新模版标签使得在 Django 模版内部使用 JavaScript 模版更加容易等等。
有关 Django 1.5 的完整信息请阅读位于 https://docs.djangoproject.com/en/dev/releases/1.5/ 的发行注记。