Logtalk是一種面向對象的邏輯編程語言,可以將大多數Prolog實現用作後端編譯器。作為一種多範式語言,Logtalk包括對原型和類,協議(接口),基於類別的組合的基於組件的編程,事件驅動編程和高級多線程編程的支持。
此版本中的新功能:
*改進:當實際的元調用不與變量共享變量時,避免虛假丟失`meta_predicate / 1`指令警告條款頭。
*改進:允許在語法規則中使用lambda表達式,而不需要`call // 1`包裝器。
* FIXED:當結果目標是由於內聯用戶謂詞定義而調用Prolog內置謂詞時,編譯閉包元參數的優化錯誤。
* FIXED:當結果目標是調用Prolog`:/ 2`控件構造時,編譯閉包元參數時的優化錯誤。
什麼是新的版本3.19:
* ADDED:支持為lint定義額外的Prolog內置謂詞
使用。檢查適配器文件中始終為true或false的目標
hook謂詞''$ lgt_candidate_tautology_or_falsehood_goal_hook'/ 1`。
* ADDED:對象屬性`module`,用於編譯產生的對象
Prolog模塊。
* ADDED:方便錯誤拋出內置方法`syntax_error / 1`和
`SYSTEM_ERROR / 0`。這些方法拋出標準的`error / 2`異常條款
並且相當於`context / 1`和`throw / 1`方法調用的序列。
* REMOVED:支持棄用的Logtalk 2.x`calls / 1`,`使用/ 1`,和
`alias / 3`指令。
* REMOVED:支持已棄用的Logtalk 2.x`:/ 1`控件構造。
* REMOVED:支持棄用的Logtalk 2.x`unknown`,`singletons`,
3.14版中的`tmpdir`和`version`編譯器標誌。
什麼是新的:
新:支持_parameter variables_提供替代
`parameter / 2`和`this / 1`內置方法來訪問實體參數。
參數變量是參數實體標識符中使用的變量
以下劃線開頭和結尾(`_VariableName_`)。任何事件
實體子句中的參數變量與。隱式統一
實體參數。這允許添加,重新排列或者實體參數
刪除後不需要對引用它們的條款進行任何更改。
參數變量僅支持在中定義的參數實體
源文件。
3.13版中的新功能:
新功能:編譯器支持檢測對沒有匹配子句的本地靜態謂詞的調用(也就是瑣碎的失敗) )。
版本3.11.1中的新功能:
*改進:編譯器警告和錯誤消息,使它們更加統一,便於編輯器和IDE解析,並避免打印可能較大的術語。
*改進:編譯器不再需要調用數據庫和反射謂詞,其中第一個參數是使用`{} / 1`編譯器旁路控制結構包裝的模塊限定術語。
* IMPROVED:數據庫和反射謂詞調用的編譯器錯誤檢查,其中第一個參數是模塊限定的術語。
* IMPROVED:最小化調用`logtalk_make / 0-1`謂詞觸發的文件重載次數。
* FIXED:`logtalk_make / 0-1`謂詞無法重新加載編譯生成編譯器錯誤的文件的情況。
版本3.11中的新內容:
* CHANGED:內置謂詞`current_event / 5`在使用unbound參與調用時始終實例化第一個參數。
*已添加:支持通過定義覆蓋默認暫存目錄
在後端Prolog初始化文件中的庫別名`scratch_directory`
(假設在Logtalk加載之前加載)。經過討論後
Douglas R. Miles支持在只讀目錄中安裝Logtalk
並發運行多個Logtalk實例而不會發生衝突。
* ADDED:用於提供訪問的`context / 1`內置上下文執行方法
到謂詞調用執行上下文。主要用於提供默認值
類型檢查謂詞參數時的錯誤上下文。
* ADDED:支持打印類型`debug`和`debug(_)`的消息。這些
默認情況下,只有在打開`debug`標誌時才打印消息。
* ADDED:屬性`包含(文件)`到`logtalk :: loaded_file_property / 2`
謂詞允許通過回溯枚舉a包含的所有文件
加載文件(使用`include / 1`指令)。
版本3.10.7中的新內容:
* RENAMED:`logtalk_make / 1`目標`缺少'到`check`。
*增加:支持用戶定義擴展`logtalk_make / 1`目標
使用新的多文件謂詞`logtalk_make_target_action / 1`的操作。
*增加:編譯器lint檢查重言式和虛假實體目標。
目前檢查是調用Prolog統一,比較和類型
測試內置謂詞。由Barry Evans建議。
版本3.10.5中的新內容:
* FIXED:在調用執行時版本3.10.2中引入的回歸上下文內置方法。
* FIXED:由於對輔助子句中的Prolog內置謂詞和函數的調用應用可移植性檢查而導致編譯器失敗(通常由術語擴展機制生成)。
什麼是新的版本3.10.3:
*改進:為多文件謂詞生成的簡化代碼。
* FIXED:在多文件編譯中的先前版本中的回歸
調用`:: / 1-2`控件構造的謂詞子句。
版本3.09.1中的新內容:
*已添加:支持`number_of_rules / 1`和`number_of_user_rules / 1`對象
和類別屬性。
* ADDED:支持`number_of_rules / 1`謂詞屬性。
* ADDED:檢測錯誤指定目標的`meta_predicate / 1`指令
元參數實際上是一個傳遞給`call / 2-N`元謂詞的閉包
調用。感謝Arun Majumdar的報導。
*增加:在存在的情況下檢測缺失的謂詞範圍指令
版本3.09.0中的`mode / 2`指令。
什麼是新的:
*已更改:現在也在用戶中查找設置文件主目錄
在啟動目錄或Logtalk用戶目錄中找不到時。
將`settings_file`標誌設置為`restrict`現在限制了搜索
Logtalk用戶目錄和用戶主目錄的設置文件。
當團隊與兩者共享Logtalk安裝時,此更改很有用
`LOGTALKHOME`和`LOGTALKUSER`環境變量指向
同一目錄。感謝Barry Evans的建議。
版本3.08.0中的新內容:
*已更改:確保在編譯器錯誤和警告消息中文件和行信息始終是報告問題的最後一行。
版本3.07.0中的新功能:
* ADDED:一個`unicode`只讀標誌,用於描述後端Prolog編譯器
支持Unicode標準。
* ADDED:支持`++`(地面)和` - `(未綁定)參數實例化
模式(聲明為前綴運算符)與`mode / 2`謂詞一起使用
指示。
* ADDED:支持`mode / 2`中的`one_or_error`確定性規範
謂詞指令。用於記錄類型檢查謂詞。
*改進:檢測企圖在外面調用存在量化的目標
`bagof / 3`和`setof / 3`調用的範圍。
* FIXED:編譯`uses / 2`指令時,不要為其創建鏈接子句
當沒有定義別名時,運行時使用`user`中的內置謂詞。
* FIXED:將文件的編譯失敗傳播到其父文件時,
確保從頂級祖先開始重新加載文件祖先
通過製造機制。
* FIXED:調用`logtalk_make / 0`或時,避免冗余文件重新加載
`logtalk_make / 1`,目標是`all`。
* FIXED:在調用時檢測`^^ / 1`調用中的缺失謂詞
`logtalk_make / 1`,目標`缺失'。
* FIXED:反射API中的一些謂詞交叉引用的錯誤
信息沒有記錄。感謝Edward Schwartz提供的錯誤報告。
3.06.2版中的新功能:
此版本繼續開發改進開發人員工具的工作贊助Kyndi,Inc。它包括一個新版本的包裝工具,用於移植普通Prolog應用程序以及改進和修復lgtunit和圖表工具。它還包括新的單元測試,編譯器和文檔修復,以及Lean Prolog的兼容性更新。
3.04.1版中的新功能:
* FIXED:編譯器錯誤,其中通過調用`compile_aux_clauses / 1`方法進行術語擴展的謂詞可能被誤報為不連續。
* FIXED:從`user`偽對象內部調用`threaded_notify / 1`內置謂詞,根據文檔不能要求綁定參數。
* FIXED:使用`number_of_clauses / 1`或`number_of_user_clauses / 1`屬性參數調用`object_property / 2`和category_property / 2`內置謂詞是確定性的。
什麼是版本3.03.0中的新:
* ADDED:支持新的`logtalk_make / 1`目標,`missing`,列出缺失的實體和謂詞。也可以使用`{?}`快捷方式。
* ADDED:支持新的`logtalk_make / 1`目標,`circular`,列出對和三對象之間的循環引用(考慮消息發送目標)。也可以使用`{@}`快捷鍵。
*改進:在中間Prolog文件名中附加目錄哈希,以便在收集同一目錄中的所有中間文件進行嵌入時避免文件名衝突。目前需要ECLiPSe,GNU
Prolog,JIProlog,Quintus Prolog,SICStus Prolog,SWI-Prolog,XSB或YAP作為後端編譯器。
* FIXED:當元參數是預編譯閉包或者在上下文中調用的目標的閉包時,元謂詞調用優化錯誤
`user`偽對象。還對閉包元參數應用更嚴格的錯誤檢查。
*修復:錯誤和警告消息中的參數對象和參數類別標識符的漂亮打印。
版本3.02.2中的新內容:
* FIXED:使用`true / 0`作為lambda檢查lambda表達式中的錯誤時出錯
目標。感謝Boris Vassilev的錯誤報告。
* FIXED:`logtalk_make / 1`謂詞將成功(打印警告後)
使用非實例化或無效參數調用時,而不是
失敗。到了
使用多文件謂詞生成中間Prolog文件以獲得更好的結果
嵌入經驗。值得注意的是,它使得增量嵌入變得更容易。
*改進:make謂詞現在也重新加載文件的父文件
編譯或加載錯誤。這可以確保在故障文件中止時
彙編加載文件中的所有文件,故障後列出的文件
修復故障文件並生成make謂詞時,將編譯文件
名為。
版本3.02.1中的新功能:
*改進:現在使用多文件謂詞將已加載文件的運行時表條目添加到生成的中間Prolog文件中,以獲得更好的嵌入體驗。值得注意的是,它使得增量嵌入變得更容易。
*改進:make謂詞現在也重新加載具有編譯或加載錯誤的文件的父文件。這可以確保當故障文件中止加載文件中所有文件的編譯時,在修復故障文件並調用make謂詞時,將編譯故障文件後列出的文件。
版本3.01.2中的新功能:
此版本完成靜態綁定實現;添加了對編譯和加載謂詞使用文件名的支持;修復編譯器錯誤;功能文檔更新;改進了調試,測試和記錄工具;增加了一套新的單元測試,用於檢查Prolog是否符合官方和事實標準;更新所有支持的文本編輯器和語法高亮顯示器的語法著色;並包括ECLiPSe,JIProlog和YAP的兼容性更新。
<強>要求強>:
兼容的Prolog編譯器。
評論沒有發現