目錄

名稱

perl582delta - perl v5.8.2 的新功能

說明

本文件說明 5.8.1 版和 5.8.2 版之間的差異。

如果您要從較早的版本(例如 5.6.1)升級,請先閱讀 perl58delta,其中說明 5.6.0 和 5.8.0 之間的差異,以及 perl581delta,其中說明 5.8.0 和 5.8.1 之間的差異。

不兼容變更

對於呼叫特定可重新進入系統呼叫的模組執行緒建置,5.8.0 和 5.8.1 之間意外遺失了二進位相容性。5.8.2 中已還原與 5.8.0 的二進位相容性,這需要中斷與 5.8.1 的相容性。我們認為這是兩害相權取其輕。

這只會影響擁有執行緒 perl 5.8.1,且編譯使用這些呼叫的模組的人,現在嘗試使用 5.8.2 執行編譯模組。修正方法是使用 5.8.2 重新編譯並重新安裝模組。

核心強化

雜湊隨機化

5.8.1 引入的雜湊隨機化已修正。事實證明,儘管 5.8.1 中引入的實作與 5.8.0 來源相容,但在某些情況下並非二進位相容。5.8.2 包含經過改善的實作,與 5.8.0 和 5.8.1 來源和二進位相容,且對於促使 5.8.1 變更的攻擊形式仍具有穩健性。

我們感謝 Debian 專案在此方面的意見。請參閱 "perlsec 中的演算法複雜度攻擊",以了解此變更背後的原始原理。

執行緒

已修正與執行緒間共用變數相關的數個記憶體外洩。

模組和實用程式

已更新的模組和實用程式

自 Perl 5.8.1 以來,下列模組和實用程式已更新

Devel::PPPort
Digest::MD5
I18N::LangTags
libnet
MIME::Base64
Pod::Perldoc
strict

文件已改進

Tie::Hash

文件已改進

Time::HiRes
Unicode::Collate
Unicode::Normalize
UNIVERSAL

文件已改進

已選取的錯誤修正

現在,剖析器可以正確處理涉及無法辨識的檔案測試運算子的某些語法錯誤。

已變更的內部

當 -DMULTIPLICITY 關閉時,直譯器初始化會更完整。這應可解決在單一程序中初始化和銷毀 Perl 直譯器多次的問題。

平台特定問題

已調整 Solaris 和 OS X 的動態連結器旗標,這應可解決在建置一些 XS 模組時所見到的問題。

已修正 OS/2 sockets 和 tmpfile 中的錯誤。

在 OS X 中,setreuid 和相關函式會造成問題 - perl 現在將盡可能解決這些問題。

未來方向

從 5.8.3 開始,我們打算進行更頻繁的維護版本發布,每次變更的數量較少。目的是更快速地將錯誤修正傳播到穩定版本,並讓升級穩定版本不再那麼大費周章。這應能讓最終使用者在升級時機的選擇上更有彈性,並讓他們更容易評估升級的影響。目前的代碼凍結計畫如下

測試完成後,將很快發布後續版本。

請參閱 "perl581delta 中的「未來方向」" 以獲得更多預測。

回報錯誤

如果您發現您認為是錯誤的內容,您可以查看最近發佈到 comp.lang.perl.misc 新聞群組的文章和 http://bugs.perl.org/ 上的 perl 錯誤資料庫。http://www.perl.com/(Perl 主頁)上也可能會有相關資訊。

如果您認為您有未報告的錯誤,請執行版本中包含的 perlbug 程式。務必將您的錯誤精簡成一個微小但足夠的測試案例。您的錯誤報告連同 perl -V 的輸出,將會傳送至 perlbug@perl.org,供 Perl 移植團隊分析。您可以在 http://bugs.perl.org/ 瀏覽和搜尋 Perl 5 錯誤。

請參閱

變更 檔案,提供變更內容的詳盡說明。

安裝 檔案,說明如何建置 Perl。

自述 檔案,提供一般資訊。

藝術複製 檔案,提供著作權資訊。