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 位元系統上,當與超過 2GB 行的字串比對時,可能會無法比對或導致 perl 崩潰。[RT #118175]
Perl v5.16 不小心引入了一個錯誤,導致在編譯時不可見的 XSUB 呼叫被視為 l 值,且可以被指定,即使子常式不是 l 值子常式。此問題已修正。[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 錯誤追蹤器回報問題的(非常感謝的)貢獻者的姓名。
此版本中包含的許多變更源自於 Perl 核心所包含的 CPAN 模組。我們感謝整個 CPAN 社群協助 Perl 蓬勃發展。
如需更完整的 Perl 歷史貢獻者清單,請參閱 Perl 原始碼發行中的 AUTHORS 檔案。
如果您發現您認為是錯誤的問題,您可能會檢查最近張貼到 comp.lang.perl.misc 新聞群組的文章,以及 http://rt.perl.org/perlbug/ 上的 perl 錯誤資料庫。Perl 首頁 http://www.perl.org/ 上也可能會有資訊。
如果您認為您有一個未回報的錯誤,請執行您的發行版中包含的 perlbug 程式。務必將您的錯誤精簡成一個微小但足夠的測試案例。您的錯誤回報,連同 perl -V
的輸出,將會傳送到 perlbug@perl.org,供 Perl 移植團隊分析。
如果您回報的錯誤具有安全性影響,不適合傳送到公開封存的郵件清單,請將其傳送到 perl5-security-report@perl.org。這指向一個封閉訂閱的未封存郵件清單,其中包含所有核心提交者,他們將能夠協助評估問題的影響,找出解決方案,並協助協調在 Perl 受支援的所有平台上發布修補程式以減輕或修復問題。請僅將此地址用於 Perl 核心中的安全性問題,而不是用於在 CPAN 上獨立發布的模組。
Changes 檔案,說明如何查看已變更內容的詳盡詳細資料。
INSTALL 檔案,說明如何建置 Perl。
README 檔案,說明一般事項。
Artistic 和 Copying 檔案,說明著作權資訊。