perl5261delta - perl v5.26.1 的新增功能
本文件說明 5.26.0 版本和 5.26.1 版本之間的差異。
如果您要從較早的版本(例如 5.24.0)升級,請先閱讀 perl5260delta,其中描述了 5.24.0 和 5.26.0 之間的差異。
使用不區分大小寫的修飾詞編譯某些正規表示式模式可能會導致堆緩衝區溢位並使 perl 崩潰。此問題現已修復。 [GH #16021]
對於正規表示式模式中的某些類型的語法錯誤,錯誤訊息可能會包含隨機、可能很大的記憶體區塊內容,或可能使 perl 崩潰。此問題現已修復。 [GH #16025]
$ENV{$key}
堆疊緩衝區溢位Windows 上 %ENV
程式碼中可能的堆疊緩衝區溢位已透過完全移除緩衝區修復,因為它本來就是多餘的。 [GH #16051]
沒有任何變更故意與 5.26.0 不相容。如果存在任何變更,它們就是錯誤,我們要求您提交報告。請參閱下方的 "報告錯誤"。
base 已從版本 2.25 升級到 2.26。
此模組中沒有點的 @INC
的效果已受到限制,因為引入了更精緻且準確的解決方案,用於從 @INC
中移除 '.'
,同時減少誤報。
charnames 已從版本 1.44 升級到 1.45。
Module::CoreList 已從版本 5.20170530 升級至 5.20170922_26。
已修正使用 g++ 於 FreeBSD-11.0 編譯的問題。 [GH #15984]
已新增使用 Microsoft Visual Studio 2017(包含 Visual C++ 14.1)於 Windows 上編譯 Perl 的支援。
在 Perl 的 64 位元組建構中,使用 GCC 6 編譯 XS 模組會因 strtoll
和 strtoull
的對應錯誤而失敗。此問題已修正。 [GH #16074] [cpan #121683] [cpan #122353]
先前內建函式有數個錯誤,可能導致函式在未配置寫入項目空間的情況下寫入內部堆疊。在罕見的情況下,這可能會導致崩潰。這些錯誤現已修正,若未來引進任何類似的錯誤,偵錯建構將自動偵測到這些錯誤。 [GH #16076]
使用帶有後解除參考語法的符號參考作為雜湊查詢的鍵,會在偵錯建構中產生斷言失敗。 [GH #16029]
在某些罕見情況下,清單指定(aassign
)可能會在 mortal 堆疊上配置一個條目,並將條目保留為未初始化狀態。 [GH #16017]
嘗試將屬性套用至已存在同名函式的our
變數,可能會導致在預期SV出現的位置提供NULL指標,導致perl崩潰。[perl #131597]
將typeglob從程式碼參考中具象化的程式碼做出一些錯誤的假設,這可能會導致在$::{"A"} = sub {}; \&{"A"}
等情況下崩潰。此問題現已修正。[GH #15937]
my_atof2
不再讀取超過終止NUL,先前如果小數點位於NUL之前就會發生這種情況。[GH #16002]
已修正utf8字串中s//
偶爾出現的「格式錯誤的UTF-8字元」崩潰問題。[GH #16019]
perldoc -f s
現在會找到s///
。[GH #15989]
已修正utf8轉換後出現的一些錯誤警告。[GH #15958]
用於捕捉Perl例外的jmpenv
框架會延遲設定,而這過去有點太過延遲。現在會提早設定捕捉器,以防止一些可能的崩潰。[GH #11804]
已移除虛假的「假設非POSIX類別」警告。[GH #16001]
Perl 5.26.1代表自Perl 5.26.0以來約4個月的開發,包含來自23位作者、橫跨85個檔案的約8,900行變更。
排除自動產生的檔案、文件和發行工具,約有990行變更套用至38個.pm、.t、.c和.h檔案。
Perl在第三個十年持續蓬勃發展,要歸功於活躍的使用者和開發人員社群。已知以下人員貢獻了改善,這些改善成為Perl 5.26.1
Aaron Crane、Andy Dougherty、Aristotle Pagaltzis、Chris 'BinGOs' Williams、Craig A. Berry、Dagfinn Ilmari Mannsåker、David Mitchell、E. Choroba、Eric Herman、Father Chrysostomos、Jacques Germishuys、James E Keenan、John SJ Anderson、Karl Williamson、Ken Brown、Lukas Mai、Matthew Horsfall、Ricardo Signes、Sawyer X、Steve Hay、Tony Cook、Yves Orton、Zefram。
以上清單幾乎可以確定不完整,因為它是從版本控制記錄自動產生的。特別是,它不包含向Perl錯誤追蹤器回報問題的(非常感謝的)貢獻者的姓名。
此版本中包含的許多變更源自於 Perl 核心所包含的 CPAN 模組。我們感謝整個 CPAN 社群協助 Perl 蓬勃發展。
如需 Perl 所有歷史貢獻者的更完整清單,請參閱 Perl 原始碼散佈中的 AUTHORS 檔案。
如果您發現您認為是錯誤的內容,您可以在 https://rt.perl.org/ 查看 perl 錯誤資料庫。Perl 首頁 http://www.perl.org/ 上也可能有相關資訊。
如果您認為您有未回報的錯誤,請執行您的版本隨附的 perlbug 程式。務必將您的錯誤精簡成一個小巧但足夠的測試案例。您的錯誤回報,以及 perl -V
的輸出,將會傳送至 perlbug@perl.org,供 Perl 移植團隊分析。
如果您回報的錯誤具有安全性影響,不適合傳送至公開封存的郵件清單,請參閱 perlsec 中的「安全性漏洞連絡資訊」,了解如何回報問題的詳細資訊。
如果您想感謝 Perl 5 Porters 我們在 Perl 5 中所做的工作,您可以透過執行 perlthanks
程式來表達謝意
perlthanks
這將會傳送一封電子郵件至 Perl 5 Porters 清單,表達您的謝意。
變更 檔案,說明如何檢視變更內容的詳盡詳細資料。
安裝 檔案,說明如何建置 Perl。
自述 檔案,說明一般事項。
Artistic 和 Copying 檔案,說明著作權資訊。