perl5181delta - perl v5.18.1 的新增功能
本文档描述了 5.18.0 版本和 5.18.1 版本之间的差异。
如果你要从 5.16.0 等早期版本升级,请首先阅读 perl5180delta,其中描述了 5.16.0 和 5.18.0 之间的差异。
没有故意与 5.18.0 不兼容的更改。如果存在任何更改,它们都是错误,我们要求你提交报告。请参阅下面的 "报告错误"。
B 已从 1.42 升级到 1.42_01,修复了与词法子例程相关的错误。
Digest::SHA 已从 5.84 升级到 5.84_01,修复了一个崩溃错误。[RT #118649]
Module::CoreList 已从 2.89 升级到 2.96。
从 v5.18.0 开始,类似于 /[#](?{})/x
的构造会错误地将其 #
解释为注释。代码块将被跳过,不会进行解析。此问题已得到纠正。
已修复与新的实验性正则表达式方括号字符类功能相关的大量内存泄漏。
现在,OP 分配代码在所有情况下都会为 struct pmop
正确返回对齐的内存。以前,它只能返回仅与 4 字节边界对齐的内存,这对于在某些 32 位平台上使用 64 位 IV 构建 ithreads 来说是不正确的。值得注意的是,这导致构建在 sparc GNU/Linux 上完全失败。[RT #118055]
已修复调试器的 man
命令。它在 v5.18.0 版本中已损坏。man
命令别名化为名称 doc
和 perldoc
- 现在所有名称都再次起作用。
@_
现在可以在调试器中正确显示,修复了 v5.18.0 的调试器中引入的回归。[RT #118169]
修复了少量正则表达式构造,这些构造在 32 位系统上匹配字符串时可能无法匹配或导致 perl 崩溃,而匹配的字符串已分配在 2GB 线以上。[RT #118175]
Perl v5.16 无意中引入了一个错误,导致对在编译时不可见的 XSUB 的调用被视为左值,并且可以被赋值,即使子例程不是左值子例程。此问题已得到修复。[perl #117947]
Perl v5.18 无意中引入了一个错误,导致双变量(即同时具有字符串和数字值的变量,例如 $!
)的真值由数字值而不是字符串值确定。[RT #118159]
Perl v5.18 无意中引入了一个错误,导致在正则表达式中插入混合升级和降级的 UTF-8 字符串可能会导致模式中的 UTF-8 格式错误:具体来说,如果范围内的降级字符 \x80..\xff
紧跟一个 UTF-8 字符串,例如
utf8::upgrade( my $u = "\x{e5}");
utf8::downgrade(my $d = "\x{e5}");
/$u$d/
[perl #118297]。
内联时,词法常量(my sub a() { 42 }
)不再崩溃。
现在,在编译不带括号的子调用时,会遵守附加到词法子例程的参数原型。以前,仅在带括号的调用中才会遵守原型。[RT #116735]
词法子例程中的语法错误与对相同子例程的调用结合使用时,不再导致编译时崩溃。
dtrace 子条目探测现在可以与词法子例程一起使用,而不是崩溃 [perl #118305]。
取消定义可内联的词法子例程(my sub foo() { 42 } undef &foo
)如果打开了警告,会导致崩溃。
深度递归警告不再导致词法子例程崩溃。[RT #118521]
Perl 5.18.1 自 Perl 5.18.0 以来大约经历了 2 个月的开发,包含来自 12 位作者的 60 个文件中大约 8,400 行的更改。
Perl 蓬勃发展进入第三个十年,这要归功于活跃的用户和开发人员社区。已知以下人员为 Perl 5.18.1 的改进做出了贡献
Chris 'BinGOs' Williams、Craig A. Berry、Dagfinn Ilmari Mannsåker、David Mitchell、Father Chrysostomos、Karl Williamson、Lukas Mai、Nicholas Clark、Peter Martini、Ricardo Signes、Shlomi Fish、Tony Cook。
上面的列表几乎肯定不完整,因为它是从版本控制历史中自动生成的。特别是,它不包括向 Perl bug 跟踪器报告问题的(非常感谢的)贡献者的姓名。
此版本中包含的许多更改源自 Perl 核心中的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码发行版中的 AUTHORS 文件。
如果您发现您认为是错误的内容,您可能会查看最近发布到 comp.lang.perl.misc 新闻组和 http://rt.perl.org/perlbug/ 上的 perl 错误数据库中的文章。https://www.perl5.cn/(Perl 主页)上也可能会有信息。
如果您认为自己遇到了未报告的错误,请运行发行版中包含的 perlbug 程序。务必将您的错误精简为一个微小但充分的测试用例。您的错误报告以及 perl -V
的输出将被发送到 [email protected] 以供 Perl 移植团队分析。
如果您报告的错误具有安全影响,不适合发送到公开存档的邮件列表,请将其发送到 [email protected]。这指向一个封闭的订阅未存档的邮件列表,其中包括所有核心提交者,他们将能够帮助评估问题的严重性,找出解决方案,并帮助协调发布补丁以减轻或修复所有支持 Perl 的平台上的问题。请仅将此地址用于 Perl 核心中的安全问题,而不是用于在 CPAN 上独立分发的模块。
Changes 文件,了解如何查看已更改内容的详尽详细信息。
INSTALL 文件,了解如何构建 Perl。
README 文件,了解一般信息。
Artistic 和 Copying 文件,了解版权信息。