<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>4. Fedora 针对开发人员所做的变更</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora-Release_Notes-18-zh-CN-1-0" /><link rel="home" href="index.html" title="发行注记" /><link rel="up" href="index.html" title="发行注记" /><link rel="prev" href="sect-Release_Notes-Changes_for_Desktop.html" title="3. Fedora 针对桌面用户所做的变更" /><link rel="next" href="sect-Release_Notes-Changes_for_Specific_Audiences.html" title="5. Fedora 针对特定爱好者所做的变更" /></head><body><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Release_Notes-Changes_for_Desktop.html"><strong>上一页</strong></a></li><li class="next"><a accesskey="n" href="sect-Release_Notes-Changes_for_Specific_Audiences.html"><strong>下一页</strong></a></li></ul><div class="section" id="sect-Release_Notes-Changes_for_Developers"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">4. Fedora 针对开发人员所做的变更</h2></div></div></div><div xml:lang="zh-CN" class="section" id="idp6159952" lang="zh-CN"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp6159952">4.1. 开发</h3></div></div></div><div class="section" id="idp6857752"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp6857752">4.1.1. <span class="package">Perl</span></h4></div></div></div><div class="section" id="idp6432176"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="idp6432176">4.1.1.1. <span class="package">Perl</span> 更新至 <span class="productnumber">5.16</span> </h5></div></div></div><div class="para"> <span class="package">Perl</span> <span class="productnumber">5.16</span> 包括一些显著变化: </div><div class="section" id="idp8425680"><div class="titlepage"><div><div keep-together.within-column="always"><h6 class="title" id="idp8425680">4.1.1.1.1. 新特性</h6></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> <code class="function">Unicode 6.1</code> </div></li><li class="listitem"><div class="para"> <code class="literal">eval</code> 与 <code class="literal">unicode_eval</code> 及<code class="literal">evalbytes</code> 的功能控制更加一致 </div></li><li class="listitem"><div class="para"> 在左值上下文情况下调用的 2 元和 3 元 <code class="literal">substr</code> 将会被考察,甚至在变更原始字符串之后 </div></li><li class="listitem"><div class="para"> 新的 <code class="literal">T_*REF_REFCOUNT_FIXED</code> XS typemap 修复了引用计数自减少的问题 </div></li><li class="listitem"><div class="para"> 新的 <code class="literal">is_utf8_char_buf</code> XS-callable 函数取代了有问题的 <code class="literal">is_utf8_char</code> 函数 </div></li><li class="listitem"><div class="para"> 允许写入 <code class="literal">$$</code> 变量 </div></li><li class="listitem"><div class="para"> 改善了除错调试器: 在回溯模式可以限定到某个级别,可以暂时禁用断点,可以通过文件名设定断点 </div></li><li class="listitem"><div class="para"> <code class="literal">sort</code> 子程序可以自动加载 </div></li><li class="listitem"><div class="para"> <code class="literal">$[</code> 变量由 <code class="literal">arybase</code> 模块提供 </div></li><li class="listitem"><div class="para"> mmaped PerlIO 层现在是一个独立的模块 <code class="literal">PerlIO::mmap</code> </div></li></ul></div></div><div class="section" id="idp12196688"><div class="titlepage"><div><div keep-together.within-column="always"><h6 class="title" id="idp12196688">4.1.1.1.2. 废弃的功能</h6></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> 直接访问 Unicode 数据库文件现在已被弃用;换为使用 <code class="literal">Unicode::UCD</code> </div></li><li class="listitem"><div class="para"> <code class="literal">Version::Requirements</code> 已被废弃,转而使用 <code class="literal">CPAN::Meta::Requirements</code> </div></li></ul></div></div><div class="section" id="idp12151336"><div class="titlepage"><div><div keep-together.within-column="always"><h6 class="title" id="idp12151336">4.1.1.1.3. 不兼容的变更</h6></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> 在空上下文中调用特殊字段 (比如 <code class="literal">BEGIN</code>) </div></li><li class="listitem"><div class="para"> 未重载的字符化正则表达式不再以字符形式返回表达式 </div></li><li class="listitem"><div class="para"> 移除 <code class="literal">T_DATAUNIT</code> 和 <code class="literal">T_CALLBACK</code> XS typemaps </div></li><li class="listitem"><div class="para"> 移除用户定义的大小写变化,取而代之的是 <code class="literal">Unicode::Casing</code> </div></li><li class="listitem"><div class="para"> <code class="literal">XSUB</code> C 函数现在是静态的并且将不能从它们的对象文件导出 </div></li><li class="listitem"><div class="para"> 不能削弱只读引用 </div></li><li class="listitem"><div class="para"> <code class="literal">$$</code>, <code class="literal">$<</code>, <code class="literal">$></code>, <code class="literal">$(</code>, and <code class="literal">$)</code> 并不缓存他们的值 </div></li><li class="listitem"><div class="para"> <code class="literal">Devel::DProf</code>, <code class="literal">Shell</code> 已经被从 <span class="package">Perl</span> 核心移除 </div></li><li class="listitem"><div class="para"> 已移除的 perl4 库: <code class="filename">abbrev.pl</code>, <code class="filename">assert.pl</code>, <code class="filename">bigfloat.pl</code>, <code class="filename">bigint.pl</code>, <code class="filename">bigrat.pl</code>, <code class="filename">cacheout.pl</code>, <code class="filename">complete.pl</code>, <code class="filename">ctime.pl</code>, <code class="filename">dotsh.pl</code>, <code class="filename">exceptions.pl</code>, <code class="filename">fastcwd.pl</code>, <code class="filename">flush.pl</code>, <code class="filename">getcwd.pl</code>, <code class="filename">getopt.pl</code>, <code class="filename">getopts.pl</code>, <code class="filename">hostname.pl</code>, <code class="filename">importenv.pl</code>, <code class="filename">lib/find{,depth}.pl</code>, <code class="filename">look.pl</code>, <code class="filename">newgetopt.pl</code>, <code class="filename">open2.pl</code>, <code class="filename">open3.pl</code>, <code class="filename">pwd.pl</code>, <code class="filename">hellwords.pl</code>, <code class="filename">stat.pl</code>, <code class="filename">tainted.pl</code>, <code class="filename">termcap.pl</code>, <code class="filename">timelocal.pl</code> </div></li></ul></div></div></div><div class="section" id="idp6187456"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="idp6187456">4.1.1.2. <span class="productname">PCRE</span> 库升级至<span class="productnumber">8.30</span> </h5></div></div></div><div class="para"> Fedora 18 将提供 <span class="productname">PCRE ( Perl 兼容正则表达式 )</span> 库 <span class="productnumber">8.30 或更新</span> 版本。这引入了 <code class="literal">UTF-16</code> 支持和 API 变化,详细记录于放置在 <code class="filename">/usr/share/doc/pcre*</code> 下的<code class="filename">changelog</code> 和 <code class="filename">NEWS</code> 文件中 </div></div></div><div class="section" id="idp6190080"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp6190080">4.1.2. <span class="productname">Python</span> 更新至 <span class="productnumber">3.3</span> </h4></div></div></div><div class="para"> 系统的 <span class="productname">Python 3</span> 栈升级至 <span class="productnumber">3.3</span> (系统的 <span class="productname">Python 2</span> 栈保持在 <span class="productnumber">2.7</span> ),带来了数以百计的修复和微调,变化列表请看 <a href="http://docs.python.org/dev/whatsnew/3.3.html">http://docs.python.org/dev/whatsnew/3.3.html</a> </div></div><div class="section" id="idp6192456"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp6192456">4.1.3. <span class="productname">Ruby on Rails</span> 框架更新</h4></div></div></div><div class="para"> Fedora 18 将提供 <span class="productname">Ruby on Rails</span> 3.2,最新版本的 <span class="productname">Ruby on Rails</span> 框架。 开发者可以使用最新的 <span class="productname">Ruby on Rails</span> 功能,详情记录于项目的发布日志 <a href="http://guides.rubyonrails.org/3_2_release_notes.html">http://guides.rubyonrails.org/3_2_release_notes.html</a> 和 <a href="http://guides.rubyonrails.org/3_1_release_notes.html">http://guides.rubyonrails.org/3_1_release_notes.html</a> 里 </div></div><div class="section" id="idp1604840"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp1604840">4.1.4. <span class="productname">Clojure</span> 新增<span class="application"><strong>Leiningen</strong></span> 及工具</h4></div></div></div><div class="para"> Fedora 18 现将提供一个更加完整的 <span class="productname">Clojure</span> 编程栈,包含了构建工具 <span class="application"><strong>Leiningen</strong></span>。这将更加方便未来打包其他 <span class="productname">Clojure</span> 库。 </div></div><div class="section" id="idp1606832"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp1606832">4.1.5. Git 提示符变更</h4></div></div></div><div class="para"> Fedora 18 中 <span class="package">git</span> 的更新修改了 bash 使用的文件,让 bash 命令提示符中可带有 git 分支信息。需要通过 bash 配置使用 git 命令提示符的用户需要将 <code class="command">source /usr/share/doc/git-1.7.12/contrib/completion/git-prompt.sh</code> 和 <code class="command">PS1='[\u@\h`__git_ps1` \W]\$ '</code> 加到 <code class="filename">~/.bashrc</code> 文件内。 </div></div></div><div xml:lang="zh-CN" class="section" id="idp5314432" lang="zh-CN"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp5314432">4.2. 开发工具</h3></div></div></div><div class="section" id="idp5680816"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp5680816">4.2.1. <span class="package">boost</span> 提速</h4></div></div></div><div class="para"> Fedora 18 will include <span class="productname">Boost</span> version <span class="productnumber">1.50</span> . The popular collection of C++ libraries is updated to the newest available version with each Fedora release. </div></div><div class="section" id="idp5506808"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp5506808">4.2.2. <span class="productname">Systemtap 2.0</span> </h4></div></div></div><div class="para"> <span class="productname">Systemtap 2.0</span> 包含了一个新的原型后端,使用 <span class="application"><strong>DynInst</strong></span> 在运行时构建用户特有的二进制文件。这个可选后端不使用内核模块,也不需要 root 权限,但是受限于脚本所使用的探测器类型和其他组成部分。 </div></div><div class="section" id="idp9212392"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp9212392">4.2.3. 用 <span class="application"><strong>LTTng</strong></span> 进行跟踪</h4></div></div></div><div class="para"> 想要提升应用程序的开发者会发现 Fedora 18 的 <span class="package">lttng-tools</span> 和 <span class="package">ltt-ust</span> 软件包提供了快速高效的追溯。该追溯器允许方便的修正用户态和内核态追溯,如果后者可用的话。实现达到一纳秒的精准时间戳,<span class="application"><strong>LTTng</strong></span> 对于查询隐藏的延迟特别有用。可以通过项目的官方指南 <a href="http://lttng.org/quickstart">http://lttng.org/quickstart</a> 开始上手 </div></div><div class="section" id="idp7056384"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp7056384">4.2.4. 崩溃报告的改进</h4></div></div></div><div class="section" id="idp11880712"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="idp11880712">4.2.4.1. 默认提供 <code class="literal">Debuginfo</code></h5></div></div></div><div class="para"> Fedora 18 默认只提供了调试信息的一小部分。但完整调试信息仍然可以用 <code class="literal">debuginfo</code> 获得。 </div></div><div class="section" id="idp826976"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="idp826976">4.2.4.2. <code class="literal">Debuginfo</code> 由 <span class="productname">DWARF</span> 压缩</h5></div></div></div><div class="para"> <code class="literal">Debuginfo</code> 会由 <span class="productname">DWARF</span> 压缩工具 <span class="application"><strong>dwz</strong></span> 做后处理以减少 <code class="filename">*.debug</code> 文件的大小。开发人员也可以在他们的二进制包中运行该程序。 </div></div><div class="section" id="idp8385288"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="idp8385288">4.2.4.3. 通过 <span class="productname">ABRT Server</span> 简化了崩溃报告</h5></div></div></div><div class="para"> Fedora 的 bug 报告工具 <span class="application"><strong>ABRT</strong></span> 使用全新、简化的方式进行用户问题的报告。这些报告由 <span class="productname">ABRT Server</span> 处理,它同时提供了报告的统计和分类归并信息,向维护人员提供了有关问题更准确的数据。 </div></div></div><div class="section" id="idp3880200"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp3880200">4.2.5. <span class="productname">IPython</span> 更新</h4></div></div></div><div class="para"> <span class="productname">IPython</span> 更新至 <span class="productnumber">0.13</span> ,显著特性有:<code class="function">Notebook</code> 拥有了全新用户界面,并有了诸如对较长行的自动换行,向仪表盘上传新笔记,管理已启动的集群以及改进的工具提示等新功能。笔记格式发生了变化,如果您要向旧版用户分享笔记,可使用附带的转换脚本。新增单元魔术函数,像 <code class="literal">%%bash</code>, <code class="literal">%%ruby</code>, <code class="literal">%%timeit</code> 和其他函数。Qt 控制台菜单得到改进,同时控制台能够直接显示 jpeg 图像。 </div></div></div><div xml:lang="zh-CN" class="section" id="idp6517600" lang="zh-CN"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp6517600">4.3. GCC 工具</h3></div></div></div><div class="section" id="idp3375880"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp3375880">4.3.1. <span class="productname">DragonEgg</span> 优化 <span class="package">GCC</span></h4></div></div></div><div class="para"> <span class="productname">DragonEgg</span> 是 <span class="package">GCC</span> 编译器的一个插件,以便能够使用 <span class="productname">LLVM</span> 优化以及代码生成框架。<span class="productname">DragonEgg</span> 为使用 <span class="package">GCC</span> 的开发人员带来了更好的优化和代码生成选择。<span class="productname">DragonEgg</span> 还可以让 <span class="package">GCC</span> 用于 <span class="productname">LLVM</span> 支持的目标架构的跨平台编译,而无需任何特殊的跨平台编译软件包。 </div></div></div><div xml:lang="zh-CN" class="section" id="idp3390616" lang="zh-CN"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp3390616">4.4. <span class="productname">D</span> </h3></div></div></div><div class="para"> Fedora 18 提供了 <span class="productname">D</span> 语言。<span class="productname">D</span> 是一种与 C/C++ 性能相近并与其有相似语法的现代编程语言。C/C++ 和 Java 开发人员可轻松转移到 <span class="productname">D</span> 语言。Fedora 18 为 <span class="productname">D</span> 工具集提供了更多更新: <div class="itemizedlist"><ul><li class="listitem"><div class="para"> Idc 编译器更新至最新稳定版 </div></li><li class="listitem"><div class="para"> 使用 <span class="package">llvm</span> 3.1 构建 </div></li><li class="listitem"><div class="para"> 标准库更新至 dmd 前端 2.060 </div></li><li class="listitem"><div class="para"> 更新了 <span class="package">gtkd</span> 以支持 <span class="productname">gtk3</span> </div></li><li class="listitem"><div class="para"> <span class="package">derelict</span> 更新至第 3 版 </div></li><li class="listitem"><div class="para"> 为在 <span class="productname">D</span> 语言下使用 <span class="productname">sqlite</span> 而增加了 <span class="package">DSQLITE</span> 软件包。 </div></li><li class="listitem"><div class="para"> 为 <span class="productname">D</span> 语言的 <span class="productname">OpenGL Maths</span> 增加了 <span class="package">gl3n</span> 软件包。 </div></li><li class="listitem"><div class="para"> 增加 <span class="package">glamour</span> 软件包: 一个适用于 <span class="productname">D</span> 编程语言的 <span class="productname">OpenGL</span> 封装器。 </div></li></ul></div> </div></div><div xml:lang="zh-CN" class="section" id="idp7496248" lang="zh-CN"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp7496248">4.5. Haskell</h3></div></div></div><div class="para"> <span class="package">GHC</span> 更新至 7.4.1,<span class="package">haskell-platform</span> 更新至 2012.2.0.0,另外剩余的 200 多个软件包中很多也得到了更新。 </div><div class="para"> 新增软件包有 <span class="package">Agda</span>、<span class="package">cabal-rpm</span> 和 <span class="package"> snap-server</span>。 </div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Release_Notes-Changes_for_Desktop.html"><strong>上一页</strong>3. Fedora 针对桌面用户所做的变更</a></li><li class="up"><a accesskey="u" href="#"><strong>上一级</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>起始页</strong></a></li><li class="next"><a accesskey="n" href="sect-Release_Notes-Changes_for_Specific_Audiences.html"><strong>下一页</strong>5. Fedora 针对特定爱好者所做的变更</a></li></ul></body></html>