檢視原始碼 SASL 發行說明

本文件描述了對 SASL 應用程式所做的變更。

SASL 4.2.2

改進和新功能

  • 文件已遷移為使用 Markdown 和 ExDoc。

    自有 ID:OTP-18955 輔助 ID:PR-8026

SASL 4.2.1

已修正的錯誤和故障

  • 改進了 systools:make_script 的錯誤訊息,當 .app 參數包含重複項時。將檢查的參數為 modules、applications 和 registered。

    自有 ID:OTP-18300 輔助 ID:PR-6389

SASL 4.2

已修正的錯誤和故障

  • 修正 systools:make* 在執行 src_tests 時遞迴搜尋原始碼的問題。

    自有 ID:OTP-17752 輔助 ID:PR-5302

改進和新功能

  • 現在,Erlang 安裝目錄可以在檔案系統上重新定位,前提是安裝的 RELEASES 檔案中的路徑是相對於安裝根目錄的路徑。release_handler:create_RELEASES/4 函式可以使用相對路徑產生 RELEASES 檔案,如果其 RootDir 參數設定為空字串。

    自有 ID:OTP-17304

SASL 4.1.2

已修正的錯誤和故障

  • 修正 systools:make_script/1 文件中的錯誤。

    自有 ID:OTP-17854 輔助 ID:PR-5596

SASL 4.1.1

已修正的錯誤和故障

  • 使 release_handler 在升級期間更能抵抗正在退出的程序。與 sasl-4.0.1 (OTP 23.1) 中發布的 OTP-16744 相同的錯誤修正。

    自有 ID:OTP-17748 輔助 ID:GH-5387,PR-5389

SASL 4.1

改進和新功能

  • 實驗性的 HiPE 應用程式已移除,以及其他應用程式中所有相關的功能。

    *潛在的不相容性 *

    自有 ID:OTP-16963

  • 識別應用程式資源檔案中的新鍵 'optional_applications'。

    自有 ID:OTP-17189 輔助 ID:PR-2675

  • saslreltool 產生的檔案中移除時間戳記,以啟用確定性建置。

    自有 ID:OTP-17292 輔助 ID:PR-4685,PR-4684

SASL 4.0.2

已修正的錯誤和故障

  • 修正當升級版本並且移除主要和相依應用程式時,相依應用程式會在主要應用程式之後停止的問題。

    範例:在一個 app1 相依於 app2 的版本中,我們應該使用版本升級移除 app1 和 app2。當版本升級完成時,app1 應該在 app2 之前停止和清除,否則當其相依性移除時,app1 可能會開始崩潰。

    此錯誤修復會將移除順序變更為正確的順序。

    自有 ID:OTP-17113 輔助 ID:ERL-1410 PR-2882

SASL 4.0.1

已修正的錯誤和故障

  • 使 release_handler 在升級期間更能抵抗正在退出的程序。

    自有 ID:OTP-16744 輔助 ID:ERL-1247,PR-2666

SASL 4.0

改進和新功能

  • 移除 I/O 通訊協定舊請求的使用和文件。

    自有 ID:OTP-15695

  • systools:make_script/2 現在接受要建立的啟動檔案名稱,而不僅限於 RelName.bootstart.boot

    systools:make_tar/2 現在接受 extra_files 選項,以將任何額外的非發行相關檔案新增至 tar 檔案。

    自有 ID:OTP-16561 輔助 ID:PR-2420

  • systools:make_tar/1,2 現在會過濾掉發行 tarball 中包含的 erts 中的任何工具。請參閱文件以取得更多詳細資訊。

    *潛在的不相容性 *

    自有 ID:OTP-16603

SASL 3.4.2

改進和新功能

  • 已新增一個 socket「登錄」,可以列出目前開啟的 socket。

    自有 ID:OTP-16309

SASL 3.4.1

改進和新功能

  • net 模組已分割為 'net' (核心) 和 prim_net (預先載入)。

    自有 ID:OTP-15765

SASL 3.4

改進和新功能

  • 將 erts 呼叫的第一個模組的名稱變更為 erl_init 而非 otp_ring0。sasl 中的 systools 已更新以反映此變更。

    自有 ID:OTP-15336 輔助 ID:PR-1825

SASL 3.3

改進和新功能

  • 新的 countersatomics 模組提供對可變固定字組大小變數進行高效操作的存取。

    自有 ID:OTP-13468

SASL 3.2.1

已修正的錯誤和故障

  • 改進了文件。

    自有 ID:OTP-15190

SASL 3.2

改進和新功能

  • Erlang/OTP 新增了新的記錄 API,請參閱 logger 手冊頁面,以及核心使用者指南中的 記錄 章節。

    error_logger 的呼叫會自動重新導向至新的 API,並且仍然可以使用舊的錯誤記錄器事件處理常式。但是,建議在編寫新程式碼時直接使用 Logger API。

    請注意以下潛在的不相容性

    • 核心組態參數 error_logger 仍然有效,但如果使用核心組態參數 logger 組態了預設處理常式的輸出目的地,則會覆寫此參數。

      一般來說,用於組態錯誤記錄器的參數會被用於組態 Logger 的新參數覆寫。

    • SASL 錯誤記錄的概念已被棄用,這表示預設情況下,SASL 應用程式不會影響記錄哪些記錄事件。

      預設情況下,監視器報告和崩潰報告會由核心啟動的預設 Logger 處理常式記錄,並最終與 Erlang/OTP 的其他標準記錄事件位於相同的目的地(終端或檔案)。

      進度報告預設不會記錄,但可以透過將主要記錄層級設定為 info 來啟用,例如使用核心組態參數 logger_level

      若要取得與先前版本 SASL 錯誤記錄功能的回溯相容性,請將核心組態參數 logger_sasl_compatible 設定為 true。這會防止預設的 Logger 處理常式記錄任何監視器、崩潰或進度報告。相反地,SASL 會在應用程式啟動期間新增單獨的 Logger 處理常式,負責處理這些記錄事件。SASL 組態參數 sasl_error_loggersasl_errlog_type 指定這些事件的記錄目的地(終端或檔案)和嚴重性層級。

    由於 Logger 是 Erlang/OTP 21.0 中的新功能,我們保留在此版本之後的修補程式中引入 Logger API 和功能變更的權利。這些變更可能與初始版本回溯相容,也可能不相容。

    *潛在的不相容性 *

    自有 ID:OTP-13295

  • 舊的和過時的「狀態檢查」工具(模組 sisi_sasl_sup)已移除。

    *潛在的不相容性 *

    自有 ID:OTP-14469

  • 建立發行 tar 檔案時,如果 sys.config.src 存在於 $ROOT/releases/<vsn>/ 目錄中,systools 現在會包含 sys.config.src。這允許在解壓縮發行版本之後,但在安裝發行版本之前進行調整,例如解析環境變數。此功能需要一個自訂工具,該工具使用 sys.config.src 作為輸入並建立正確的 sys.config 檔案。

    自有 ID:OTP-14950 輔助 ID:PR-1560

SASL 3.1.2

已修正的錯誤和故障

  • 使用 'restart_new_emulator' 指令升級時,產生的臨時啟動檔案會使用舊版本中的 'kernelProcess' 陳述式,而不是新版本中的陳述式。現在已修正此問題。

    此修正對於升級至 OTP-21 是必要的。

    自有 ID:OTP-15017

SASL 3.1.1

已修正的錯誤和故障

  • 報表瀏覽器 rb 早期無法處理不是清單的報表,例如由 error_logger:info_report({some, tuple}) 產生的報表。此詞彙允許作為 error_logger 的輸入,但 rb 會指出「遇到格式錯誤的報表」。現在已修正此問題。

    自有 ID:OTP-13906 輔助 ID:ERL-261

SASL 3.1

改進和新功能

  • 一般 Unicode 改進。

    自有 ID:OTP-14462

  • release_handlerreltool 產生的檔案,可能包含 Unicode 字元,現在會以 UTF-8 編碼,並以 "~tp" 或 "~ts" 格式寫入。如果該檔案要由 file:consult/1 讀取,則會加入編碼註解。

    自有 ID:OTP-14463

  • SASL 錯誤記錄器事件處理器 sasl_report_file_h,現在預設會以 UTF-8 編碼開啟其日誌檔。這可以在設定 SASL 時覆寫,請參閱 SASL 參考手冊中的設定參數 sasl_error_logger

    自有 ID:OTP-14618

SASL 3.0.4

修正的錯誤與故障

  • .app 檔案中 'mod' 和 'start_phases' 欄位的已記錄預設值,先前不允許作為 .app 檔案中的實際值。現在已修正此問題。

    自有 ID:OTP-14029

改進與新功能

  • 由於原子包含任意 Unicode 字元而進行的雜項更新。

    自有 ID:OTP-14285

SASL 3.0.3

修正的錯誤與故障

  • systools:make_scriptsystools:make_relup 同時指定 'warnings_as_errors' 和 'silent' 選項時,如果發生警告,將不會返回錯誤原因。而是僅返回原子 'error'。現在已修正此問題。

    現在 systools:make_tar 也允許使用選項 'warnings_as_errors' 和 'no_warn_sasl'。

    自有 ID:OTP-14170

SASL 3.0.2

修正的錯誤與故障

  • code:add_pathsa/1 和命令列選項 -pa 在程式碼路徑的開頭添加給定目錄列表時,都會反轉該列表。現在已記錄此行為。

    自有 ID:OTP-13920 輔助 ID:ERL-267

SASL 3.0.1

改進與新功能

  • 改進了骯髒排程器的支援。現在可以執行模組清除,而無需等待所有正在進行的骯髒 NIF 呼叫完成。

    請注意,當啟用骯髒排程器的支援時,從 ERTS 8.1 版開始將啟用新的清除策略。此新策略與預設使用的策略並不完全向後相容。如需更多資訊,請參閱 erlang:check_process_code/3 的文件。

    自有 ID:OTP-13808 輔助 ID:OTP-13833

  • 引入了新的清除策略。在 OTP 19 版本中,預設會停用此新策略,但從 OTP 20 版本開始,它將是唯一可用的策略。

    新策略與 OTP 19 中預設使用的策略略有不相容。使用預設策略,持有引用被清除模組的 fun 的程序,要么軟清除失敗,要么在硬清除期間被終止。新策略會完全忽略 fun。如果存在引用被清除程式碼的 fun,並且在清除後使用,則在使用時會引發例外。也就是說,行為將與程序在清除後收到 fun 的情況完全相同。

    在 OTP 19 中建置 OTP 時,可以選擇啟用新策略,如果執行時間系統是使用骯髒排程器的支援來建置,則會自動啟用。

    如需更多資訊,請參閱 erlang:check_process_code/3 的文件。

    自有 ID:OTP-13833

SASL 3.0

改進與新功能

  • 移除了 'overload' 模組。

    *潛在的不相容性 *

    自有 ID:OTP-13184

SASL 2.7

修正的錯誤與故障

  • 在升級期間,release_handler 會收集監督者 PID 列表,以便列出監督者樹中的所有程序。如果其中一個監督者(合法地)在 release_handler 可以檢查它之前退出,那麼先前會使用死掉的 PID 呼叫 sys:get_status/1,導致 'noproc' 錯誤。此問題已修正。

    自有 ID:OTP-13291

改進與新功能

  • 模組 overload 已棄用,並將在 OTP 19 中移除。

    自有 ID:OTP-13057

  • 改進了監督者子程序計數的實作,使其對於 simple_one_for_one 監督者的動態程序更快且更準確。

    自有 ID:OTP-13290

SASL 2.6.1

改進與新功能

  • 文件改進

    自有 ID:OTP-13000

SASL 2.6

改進與新功能

  • 引入了一種機制來限制內建錯誤記錄器事件將產生的文字量。這對於限制日誌檔的大小和用於產生它們的 CPU 時間都很有用。

    這種機制是實驗性的,因為如果它無法解決它應該解決的問題,則可能會更改。在這種情況下,對此機制可能會進行不向後相容的改進。

    請參閱 Kernel 應用程式中 config 參數 error_logger_format_depth 的文件,以了解如何開啟此功能。

    自有 ID:OTP-12864

SASL 2.5

修正的錯誤與故障

  • 移除了未記錄的升級指令 {remove_module,PrePurge,PostPurge,DepMods}。此指令是在 OTP R7B 中為了對稱原因而加入的,但從未記錄或測試。

    現在已記錄現有的指令 {add_module,Mod,DepMods},並新增了補充指令 {delete_module,Mod,DepMods}

    *潛在的不相容性 *

    自有 ID:OTP-11540

改進與新功能

  • sasl_error_logger 設定參數現在支援值 {file,FileName,Modes},允許日誌檔以寫入以外的模式開啟(例如,附加模式)。

    自有 ID:OTP-12778

SASL 2.4.1

修正的錯誤與故障

  • 文件錯誤地指定 alarm_handler:clear_alarm/1 會清除具有 ID AlarmId所有警報。現在已根據實作修正此問題 - 簡單的預設處理程序只會清除具有給定 AlarmId 的最新收到的警報。

    自有 ID:OTP-12025

SASL 2.4

修正的錯誤與故障

  • 升級指令 'restart_application' 先前會忽略 .rel 檔案中設定的重新啟動類型,並且始終以永久方式重新啟動應用程式。現在已更改此行為,並使用 .rel 檔案中的重新啟動類型。如果重新啟動類型為 'load',則只會載入應用程式,而不會啟動。如果重新啟動類型為 'none',則不會載入或啟動應用程式,但會載入應用程式中的所有模組。(感謝 Tobias Schlager 回報此問題)

    *潛在的不相容性 *

    自有 ID:OTP-11716

  • 如果 systools:make_script/2duplicate_modules 原因而失敗,並且未使用 silent 標誌,則當 systools 嘗試格式化錯誤訊息時,會發生 function_clause 原因的崩潰。此問題已修正。(感謝 Jean-Sébastien Pédron)

    自有 ID:OTP-11819

改進與新功能

  • 使用 'spawn' 呼叫 erlang:open_port/2 的部分已更新,以處理命令路徑中的空格。

    自有 ID:OTP-10842

  • 新增了一些文件,以說明升級包含新版本的 ERTS、Kernel、STDLIB 或 SASL 時的行為。

    自有 ID:OTP-11717

SASL 2.3.4

修正的錯誤與故障

  • 除非設定為這樣做,否則不要嘗試在 sasl 中新增 log_mf_h 處理程序。感謝 Richard Carlsson。

    自有 ID:OTP-11464

  • 修正 SASL 中關於錯誤處理程序的混淆文件。(感謝 Richard Carlsson)

    自有 ID:OTP-11507

  • Erlang/OTP(模擬器、kernel、stdlib、sasl)核心部分升級機制中的一個錯誤,導致 stdlib 和 sasl 之間的路徑在中間 .script/.boot 檔案中切換。該錯誤是與 R15B 中的升級機制一起引入的。現在已修正此問題。(感謝 Tobias Schlager)

    自有 ID:OTP-11529

改進與新功能

  • 新增一個啟動檔案,該檔案會在啟動時跳過載入 "$HOME/.erlang" 檔案。透過使用 "erl -boot no_dot_erlang" 啟動 erlang 來啟用。

    * 與 false 的不相容 *

    自有 ID:OTP-8479 輔助 ID:seq11510

SASL 2.3.3

改進與新功能

  • 在 rb 日誌中新增 Fd 使用情況。感謝 Eric Pailleau。

    專屬 ID:OTP-11252

SASL 2.3.2

已修正的錯誤和故障

  • 修正 erl_eval 中使用 BEAM 模組的接收支援。感謝 Anthony Ramine。

    專屬 ID:OTP-11137

SASL 2.3.1

改進與新功能

  • 對 systools 和 release_handler 進行了一些更新,以處理 Unicode。

    專屬 ID:OTP-10782

SASL 2.3

已修正的錯誤和故障

  • release_handler_SUITE:otp_9864 刪除了 release_handler_SUITE_data 目錄的部分內容,因此測試套件在未重新安裝的情況下無法執行兩次。此問題已修正。

    專屬 ID:OTP-10394 輔助 ID:kunagi-187 [98]

  • 在 .app 檔案的 'modules' 列表中,不再可能使用 {Mod,Vsn}

    雖然 .app 檔案參考手冊中從未記錄過此項,但之前是可行的。不過在 application:load/[1,2] 的文件中可以看到,其中可以使用與 .app 檔案中相同的術語作為第一個引數。

    由於 Vsn 部分從未使用過,因此已移除此可能性。

    *潛在的不相容性 *

    專屬 ID:OTP-10417

  • release_handler:upgrade_script 和 release_handler:downgrade_script 無法讀取具有正規表示式的 appup 檔案。此問題已修正。(感謝 Ulf Wiger)

    專屬 ID:OTP-10463

改進與新功能

  • 在必要時,已將註解宣告編碼新增至 Erlang 檔案。此註解旨在 Erlang/OTP R17B 將 UTF-8 設定為預設編碼時移除。

    專屬 ID:OTP-10630

SASL 2.2.1

已修正的錯誤和故障

  • 如果 sys.config 存在,但無法讀取或剖析,則在升級之後和下次節點重新啟動時才會偵測到。現在,透過在 systools:make_tar 中新增檢查,如果 sys.config 或 relup 沒有合理的內容,則會導致 tar 檔案建立失敗,從而減少了此情況發生的可能性。請注意,沒有詳細的檢查,只有剖析和 Erlang 術語格式檢查。

    專屬 ID:OTP-9539

  • systools:make_script 允許在 .rel 檔案中使用 {kernel,Vsn,load},導致 .boot 檔案僅載入核心而未啟動核心。此問題已修正。現在僅允許核心和 stdlib 使用預設的啟動類型 'permanent'。

    專屬 ID:OTP-9652

  • release_handler:remove_release/1 現在可以正確處理符號連結的檔案

    專屬 ID:OTP-9864

  • 如果 stdlib 在 .rel 檔案中指定的啟動類型與 permanent 不同,則 systools 會錯誤地指出 sasl 的啟動類型錯誤。此問題已修正。

    專屬 ID:OTP-9888

  • Sasl 文件先前說明 .rel 檔案中的 InclApps 參數預設為空列表。這是不正確的。它預設為與 .app 檔案中指定的值相同。此問題已修正。

    專屬 ID:OTP-9980

  • 在 .app 檔案中以 {applications,Apps} 列出的應用程式,並未被 systools:make_script/1,2 正確排序。它們的順序與 .app 檔案中的順序相反。此問題已修正,現在它們會(彼此之間)按照 .rel 檔案中列出的順序(即 .app 檔案中列出的順序不再重要)排序。

    *潛在的不相容性 *

    專屬 ID:OTP-9984

  • .appup 檔案的文件現在也說明 UpFromVsnDownToVsn 可以指定為正規表示式,以避免重複的升級指示。

    專屬 ID:OTP-10001

  • Reltool 有時會產生包含 {start_phases,undefined} 的 .app 檔案,這會在剖析時導致 systools 中發生例外狀況。此問題已修正,因此 reltool 現在會在值為 undefined 時省略 start_phases 項目。(感謝 Juan Jose Comellas)

    為了與 reltool 對齊,sasl 也會在 .script 檔案中省略值為 undefinedstart_phases 項目。

    專屬 ID:OTP-10003

SASL 2.2

已修正的錯誤和故障

  • 修正升級模擬器的機制。

    kernel、stdlib 和 sasl 的 appup 檔案現在可以識別兩個主要版本的先前版本,並包含 'restart_new_emulator' 指示。

    Appup 檔案可以包含用於比對先前版本的正規表示式。

    升級模擬器的機制已變更,因此 'restart_new_emulator' 將會是第一個執行的指示。其餘的升級指示會在模擬器重新啟動後執行。

    新增一個新的升級指示 'restart_emulator',用於在所有其他升級指示之後重新啟動模擬器的情況。

    *潛在的不相容性 *

    專屬 ID:OTP-9438

  • 新增 release_handler:which_releases/1

    這是 which_releases 的延伸功能,可讓使用者指定他們希望傳回的發行版本的狀態。例如,它可以快速判斷哪個發行版本是 'permanent',而無需剖析整個發行版本列表。(感謝 Joe Williams)

    專屬 ID:OTP-9717

  • 在發行版本 tar 檔案中新增 releases/Vsn 中 rel 檔案的副本

    systool:make_tar 將 rel 檔案儲存在 releases 目錄中。使用 release_handler:unpack_release 解壓縮時,該檔案會自動移至 releases/Vsn/。但是,如果手動解壓縮 tar 檔案,則該 rel 檔案可能不會移動,並且下一個解壓縮的發行版本可能會覆寫該 rel 檔案。為了克服此問題,systools:make_tar 現在會直接在 releases/Vsn/ 中儲存 rel 檔案的副本,並且在解壓縮後不再需要移動該檔案。

    將該檔案保留在 releases 目錄中的原因也是因為在得知發行版本 (Vsn) 之前,需要先單獨解壓縮該檔案。

    專屬 ID:OTP-9746

SASL 2.1.10

已修正的錯誤和故障

  • Windows 服務上的 release_handler 功能已損毀。此問題已修正。

    專屬 ID:OTP-9306

  • 如果新版本的應用程式未包含任何 Erlang 模組變更,則除非為該應用程式新增 'load_object_code' 指示,否則 release_handler 不會更新該應用程式的程式碼路徑。如果僅變更了 priv 目錄中的某些檔案,則這會是一個問題,因為呼叫 code:lib_dir 或 code:priv_dir 會指向應用程式的舊位置。此問題已修正 - 現在將為所有已變更的應用程式呼叫 code:replace_path/2(即,當應用程式的 vsn 在 .rel 檔案中變更時)。

    專屬 ID:OTP-9402

  • 如果未載入要刪除的模組,則 appup 指示 'delete_module' 會在升級期間導致當機。此問題已修正。

    專屬 ID:OTP-9417

  • 如果僅以 'ebin'(而非例如 './ebin')的形式給定路徑,則 systools:make_tar 會在 filename:join/1 中發生 function_clause 例外狀況而失敗。此問題已修正。(感謝 Nikola Skoric 的回報)。

    專屬 ID:OTP-9507

  • 實作或修正 -Werror 選項

    如果啟用 -Werror 且有警告,則不會寫入輸出檔案。同時確保錯誤/警告報告的一致性。(感謝 Tuncer Ayaz)

    專屬 ID:OTP-9536

  • 改進 release_handler:install_release 期間逾時的錯誤資訊。

    此修補程式解決了升級期間會發生逾時的兩種情況。1) 如果暫停了 Supervisor(呼叫從 Supervisor 取得子系將會掛起)2) 如果 Supervisor 的子系規格不正確地說明它是具有動態模組集的 Worker(呼叫從 gen_event 取得模組將會掛起)

    現在將列印錯誤報告,並且 release_handler:install_release 的傳回值會指出發生的情況。(感謝 Joe Williams)

    專屬 ID:OTP-9546

改進與新功能

  • 當系統中有很多程序時,release_handler:install_release 可能會非常慢。為了改進這一點,erts 和 release handler 都進行了一些最佳化工作。

    新增一個新的選項 purgerelease_handler:check_install_release,可以先呼叫此選項以加速 release_handler:install_release 的執行速度。

    專屬 ID:OTP-9395

SASL 2.1.9.4

已修正的錯誤和故障

  • 移除 release_handler 在具有 Masters 列表時從檔案系統讀取的追蹤

    release_handler 和 release_handler_1 中有幾個地方假設它有一個磁碟可讀取,但在 erl_prim_loader Loader 不是 efile 的情況下,情況並非如此

    新增 check_paths/2 函式,當存在 Master 清單時,執行與 check_path/1 相同的功能。

    變更 get_vsn 函式,不再接收檔案路徑,改為使用 Bin,因為 beam_lib:version 函式接收檔案路徑會導致其讀取本機檔案系統。

    新增 get_current_vsn/1 函式,功能等同於 beam_lib:version(code:which(Mod)),但改為使用 erl_prim_loader:get_file,而非讀取本機檔案系統。

    (感謝 Steven Gravell)

    問題編號:OTP-9142

  • rb:stop 有時會回傳 {error,running}。這源於 supervisor:delete_child,當呼叫此函式時,rb_server 尚未終止所致。現在不再使用單獨的 gen_server 呼叫 rb_server 來停止程序,改為呼叫 supervisor:terminate_child。這是一個同步函式,即它會等待程序實際終止後才會返回。

    修正 rb:scan_files 中的檔案描述符洩漏問題。讀取索引檔案後,從未關閉該檔案。

    修正 rb:filter 行為不一致的問題,當篩選條件包含 'no' 時,會回傳非預期的結果。此類篩選條件現在會回傳所有不符合的報告,而不僅是 'proplist' 報告。

    問題編號:OTP-9149

  • rb:filter/2 的開始和結束日期在說明文件中指定為 {{Y-M-D},...},而非 {{Y,M,D},...}。此錯誤已修正。

    問題編號:OTP-9166

  • 如果與 log_mf_h 錯誤處理程序相關的某些但非全部的 sasl 環境變數遺失,sasl 會成功啟動,但會靜默跳過啟動 log_mf_h。此問題已修正,如果提供了三個變數中的一個或兩個,sasl 啟動現在會失敗。如果沒有提供任何變數,sasl 將像以前一樣啟動,而不啟動 log_mf_h。

    問題編號:OTP-9185

改進與新功能

  • 變更預設行為,建立發行版本時不檢查原始碼。

    新增選項 src_tests 至 systools:make_script 和 systools:make_tar。舊選項 no_module_tests 現在會被忽略,因為這已是預設行為。

    *潛在的不相容性 *

    問題編號:OTP-9146,輔助編號:seq11803

SASL 2.1.9.3

改進與新功能

  • 在建立 relup 檔案時,採用 .rel 檔案中的啟動類型。

    先前,relup 檔案對於 UpTo/DowFrom 發行檔案中出現的每個應用程式,總是包含 application:start(Application, permanent) 的指令,無論它們在發行檔案中的啟動類型為何。

    新的實作透過採用 rel(5) 格式中的啟動類型來修正此錯誤。如果啟動類型為 none,則 relup 中不會包含任何 apply 行。如果啟動類型為 load,則 relup 只會包含載入應用程式的指令。否則,relup 會包含依照指定類型啟動應用程式的指令。

    此修正透過新增一個參數至 add_application 高階 appup 指令來實作。這個新參數已在 appup(5) 中說明。

    問題編號:OTP-9097

SASL 2.1.9.2

修正錯誤與故障

  • 在 R13B04 中,sys:get_status 被修改為在回呼模組中呼叫 format_status/2(如果模組匯出該函式)。這導致在 supervisor 模組上呼叫 sys:get_status 時,回傳的值發生變更,因為 supervisor 是一個 gen_server,而 gen_server 匯出 format_status。sasl release_handler_1 模組依賴於在 supervisor 上呼叫 sys:get_status 時,R13B04 之前的回傳值,因此 R13B04 的變更破壞了該依賴性。

    此問題已透過變更 release_handler_1 來處理 R13B04 之前和 R13B04 之後,sys:get_status 從 supervisor 可能回傳的值來解決。

    問題編號:OTP-8619,輔助編號:seq11570

SASL 2.1.9.1

改進與新功能

  • 在 SASL 應用程式中,對所有 gen_server:call() 的呼叫都使用無限逾時。

    問題編號:OTP-8506,輔助編號:seq11509

SASL 2.1.9

改進與新功能

  • re:grep/1 函式現在使用 're' 模組,而不是已棄用的 'regexp' 模組。新增了 rb:filter/1rb:filter/2 函式,以方便篩選報告。(感謝 Alvaro Videla。)

    問題編號:OTP-8443

  • 新增了 sasl_report:format_report/3 函式,其運作方式與現有的 sasl_report:write_report/3 函式類似,但它會回傳格式化字串。請注意,目前沒有關於 sasl_report 模組的文件。(感謝 Jay Nelson。)

    問題編號:OTP-8445

  • 根據 tidier 的建議進行清理,並將類型和規格現代化。

    問題編號:OTP-8455

SASL 2.1.8

改進與新功能

  • 現在使用大多數平台上都存在的開源工具 (xsltproc 和 fop) 建置文件。一個可見的變更是移除了框架。

    問題編號:OTP-8201

SASL 2.1.7

改進與新功能

  • 在互動模式下執行的 Windows 工具 Erlsrv 現在接受用於註冊 Windows 登錄資料庫的內部服務名稱和描述欄位的選項。

    問題編號:OTP-8132

SASL 2.1.6

修正錯誤與故障

  • 當使用 SASL 應用程式配置參數 masters 時,有時即使檔案 FileName 存在,也會回傳錯誤元組 {error,{no_such_file,{Master,FileName}}}

    問題編號:OTP-7667

改進與新功能

  • 新增遺失的預先載入模組。

    問題編號:OTP-7820

SASL 2.1.5.4

改進與新功能

  • 消除了 Dialyzer 警告。

    問題編號:OTP-7635

SASL 2.1.5.3

改進與新功能

  • 小幅變更。

    問題編號:OTP-7388

SASL 2.1.5.2

改進與新功能

  • 小幅更新。

    問題編號:OTP-6998

SASL 2.1.5.1

改進與新功能

  • 小幅 Makefile 變更。

    問題編號:OTP-6689

  • 已將過時的 guard 測試 (例如 list()) 取代為現代 guard 測試 (例如 is_list())。

    問題編號:OTP-6725

SASL 2.1.5

修正錯誤與故障

  • erlsrv:get_service/2release_handler:do_write_file/2systools_relup:foreach_baserel_up/7systools_relup:foreach_baserel_dn/7 中移除了一些無效程式碼。

    問題編號:OTP-6499

SASL 2.1.4

改進與新功能

  • systools 中的函式中新增了選項 {outdir,Dir},使您可以指定啟動腳本、relup 檔案或發行套件檔案應放置在哪個目錄中。

    此外,當使用 systools:make_tar/2 建立發行套件檔案時,現在也會在目前的工作目錄和由 path 選項指定的任何目錄中搜尋啟動腳本、relup 檔案和 sys.config,而不僅僅是在 .rel 檔案的目錄中。

    作為此工作的一部分,已修正一些小錯誤。

    • systools:make_script/1,2 現在如果無法開啟 .script 和/或 .boot 檔案以進行寫入,則會回傳 error,而不是 ok
    • systools:make_tar/1,2 現在可以處理包含路徑的 RelName 引數。先前,這會導致 .rel 檔案在產生的 tar 檔案中放置在錯誤的目錄中。
    • systools:make_tar/1,2 的文件錯誤:.rel 檔案放置在 tar 檔案的 releases 目錄中,而不是 releases/RelVsn 中。

    問題編號:OTP-6226

SASL 2.1.3

修正錯誤與故障

  • release_handler:upgrade_app/2release_handler:downgrade_app/2,3(用於根據 .appup 檔案測試應用程式升級和降級)現在可以正確更新應用程式配置參數。(感謝 Serge Aleynikov)

    問題編號:OTP-6162

SASL 2.1.2

修正錯誤與故障

  • 修正了 Dialyzer 在 release_handler 中發現的一些小錯誤。

    問題編號:OTP-6039

SASL 2.1.1

改進與新功能

  • release_handler 中新增了許多函式,使得可以根據 .appup 檔案「動態」測試應用程式的升級和降級。
    - upgrade_app/2
    - upgrade_script/2
    - downgrade_app/2,3
    - downgrade_script/3
    - eval_appup_script/4

    問題編號:OTP-5858

SASL 2.1

改進與新功能

  • release_handler:install_release/2 新增了選項 {update_paths,Bool}。它指示是否應該更新所有應用程式程式碼路徑 (Bool==true),或僅更新已修改應用程式的程式碼路徑 (Bool==false,預設值)。

    release_handler:set_unpacked/2 現在如果指定的應用程式目錄不存在,則會回傳錯誤元組。

    *潛在的不相容性 *

    自身 ID:OTP-5761

SASL 2.0.1

改進與新功能

  • 修復了一個錯誤,該錯誤導致在不出現錯誤的情況下,無法呼叫 rb:show(N)N 為整數)兩次。

    自身 ID:OTP-5287