perl5301delta - perl v5.30.1 的新功能
本文档描述了 5.30.0 版本和 5.30.1 版本之间的差异。
如果您要从 5.28.0 等早期版本升级,请先阅读 perl5300delta,其中描述了 5.28.0 和 5.30.0 之间的差异。
没有故意与 5.30.1 不兼容的更改。如果存在任何不兼容,则它们是错误,我们要求您提交报告。请参见下面的 "报告错误"。
Module::CoreList 已从版本 5.20190522 升级到 5.20191110。
我们已尝试更新文档以反映本文档中列出的更改。如果您发现我们遗漏了任何内容,请发送电子邮件至 [email protected]。
此外,文档已更新以引用 GitHub 作为新的规范存储库,并描述新的 GitHub 拉取请求工作流程。
现在定义了 ECHO
宏。这在最初为 FreeBSD 更改的 dtrace
规则中使用,并且 FreeBSD make 显然预定义了它。Solaris make 没有预定义 ECHO
,这在 Solaris 上破坏了此规则。 [perl #17057]
添加和更改了测试以反映此版本中的其他添加和更改。
区域设置测试可能会在 Win32 上崩溃,原因是 Windows 错误,以及由于 CRT 在区域设置名称在当前代码页中无效编码时抛出异常。
对于第二个,我们现在自己解码区域设置名称,并始终将其解码为 UTF-8。
设置 $)
现在会正确设置辅助组 ID,如果您具有必要的权限。 [perl #17031]
readline @foo
现在在标量上下文中评估 @foo
。以前,它将在列表上下文中进行评估,并且由于 readline() 仅从堆栈中弹出单个参数,因此堆栈可能会下溢,或者在堆栈上留下意外的值。 [perl #16929]
sv_gets() 现在如果目标 SV 被信号处理程序修改,则恢复得更好。 [perl #16960]
将非 SVf_UTF8
字符串与包含 Unicode 字面量的正则表达式匹配可能会在每次匹配尝试时泄漏 SV。 [perl #17140]
sprintf("%.*a", -10000, $x)
会由于错误处理负精度值而导致缓冲区溢出。 [perl #16942]
对引用使用 scalar()
可能会在编译期间导致错误的断言失败。 [perl #16969]
Perl 5.30.1 代表了自 Perl 5.30.0 以来大约 6 个月的开发,包含来自 14 位作者的 67 个文件中大约 4,700 行更改。
不包括自动生成的代码、文档和发布工具,对 20 个 .pm、.t、.c 和 .h 文件进行了大约 910 行更改。
由于充满活力的用户和开发人员社区,Perl 在其第四个十年中继续蓬勃发展。以下人员已知为 Perl 5.30.1 的改进做出了贡献
Chris 'BinGOs' Williams、Dan Book、David Mitchell、Hugo van der Sanden、James E Keenan、Karen Etheridge、Karl Williamson、Manuel Mausz、Max Maischein、Nicolas R.、Sawyer X、Steve Hay、Tom Hukins、Tony Cook。
上面的列表几乎肯定是不完整的,因为它是由版本控制历史自动生成的。特别是,它不包括报告 Perl 错误跟踪器问题的贡献者(非常感谢)的姓名。
本版本中包含的许多更改源于 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码分发中的 AUTHORS 文件。
如果您发现您认为是错误,您可以在 https://rt.perl.org/ 上查看 Perl 错误数据库。您也可以在 https://www.perl5.cn/(Perl 主页)上找到相关信息。
如果您认为您遇到了未报告的错误,请运行随您的版本一起提供的 perlbug 程序。请务必将您的错误缩减为一个微小但足够的测试用例。您的错误报告以及 perl -V
的输出将被发送到 [email protected],由 Perl 移植团队进行分析。
如果您要报告的错误存在安全隐患,不适合发送到公开存档的邮件列表,请参阅 "perlsec 中的 SECURITY VULNERABILITY CONTACT INFORMATION",了解如何报告该问题。
如果您想感谢 Perl 5 移植团队为 Perl 5 所做的工作,您可以运行 perlthanks
程序。
perlthanks
这将向 Perl 5 移植团队列表发送一封电子邮件,表达您的感谢。
Changes 文件,了解如何查看有关更改的详尽信息。
INSTALL 文件,了解如何构建 Perl。
README 文件,了解一般信息。
Artistic 和 Copying 文件,了解版权信息。