幾天前 宣布發布新版編程語言 Julia 1.9,它結合了高性能、動態類型支持和並行編程內置工具等特性。 Julia 的語法接近 MATLAB,其中一些元素借鑒自 Ruby 和 Lisp。
朱莉婭 作為一種具有動態類型的多平台和多範式編程語言脫穎而出 用於通用、技術和科學計算的高級、高性能框架,其語法類似於其他類似計算環境的語法。
Julia 1.9 的主要新聞
在這個新版本的 Julia 1.9 中,有幾個 運行時/編譯器的改進,因為 有 顯著縮短首次運行時間。 包預編譯現在將本機代碼保存在“pkgimage”中,這意味著預編譯期間生成的代碼在加載包後不需要重新編譯。 可以使用選項“–pkgimages=no”禁用 pkgimages 模式。
另一個引人注目的變化是 現在可以優化帶有非特定類型參數的調用 via join split for injection or static resolution,即使有幾種不同類型的提交候選。 通過靜態解析調用站點,這可以在對像類型未完全靜態解析的某些情況下提高性能”@nospecialize-d” 並避免重新編譯。
單字符文字現在支持與字符串文字相同的語法; 這些語法可以表示無效的 UTF-8 序列,正如 Char 類型所允許的那樣。
除此之外,在 Linux 和 Windows 上,選項 «--線程=自動» 現在嘗試確定可用的處理器數量 基於 CPU 親和性,這是通常在 HPC 和雲環境中設置的掩碼。
該選項已被禁用--math-mode=fast“,而不是建議使用宏”@fastmath",除了參數 "–線程» 現在有格式 «汽車 | N[,自動|M]»,其中 M 指定要創建的交互式線程數。
添加了選項«--heap-size-hint=» 設置活動垃圾收集開始後的閾值。 大小可以字節、千字節 (1000 KB)、兆字節 (300 MB) 或千兆字節 (1,5 GB) 為單位指定。
“@invoke”宏 1.7 版中引入的,現已導出並可供使用。 除了, 現在使用“Core.Typeof(x)”方法 相當 ”任何" 當參數 "x" 的類型註解被省略時。 這是必需的,以便正確處理作為參數傳遞的類型。
此外, “Threads.@spawn”現在有一個可選的第一個參數“:default”或“:interactive”。 交互式任務需要低延遲響應,並且設計為較短或較頻繁。 如果在啟動 Julia 時指定了交互式任務,它們將在交互式線程上運行。
, 其他突出的變化:
- 否定謂詞函數“!f”現在返回複合函數“(!)∘f”而不是匿名函數。
- 維度拆分功能現在適用於多個維度:«每個切片”、“每個行”和“每個列” 返回一個對象“切片» 允許航運提供更有效的方法。
- 宏 «@kwdef» 已添加到公共 API。
- 修復了“fld1”中操作順序的問題。
- 隨著時間的推移,排序現在始終穩定(重新設計的快速排序)。
- BLAS 線程的默認數量現在等於 ARM 架構上的 CPU 線程數和其他架構上的 CPU 線程數的一半。
- Printf:為格式錯誤的字符串重寫錯誤消息以提高可讀性。
- 配置文件:新函數“Profile.take_heap_snapshot(file)”以 Chrome 支持的基於 JSON 的“.heapsnapshot”格式寫入文件。
- 添加了對 Unicode 15 規範的支持。
- 元組和命名字符元組的嵌套組合現在可以用作類型參數。
最後,如果你有興趣了解更多,可以諮詢詳情 在下面的鏈接中。