跨平台編程語言 Julia 發布了 1.9 版

朱莉婭朗

ulia 是一種用於技術計算的動態、高級、高性能語言。

Julia 1.9 是該程式語言的新版本,已於數天前發布。它融合了高性能、動態類型支援以及整合並行編程工具等特性。 Julia 的語法與 MATLAB 類似,並藉鏡了 Ruby 和 Lisp 的一些元素。

Julia是一種高階、高效能、多平台、多範式、動態類型的程式語言,適用於通用、技術和科學運算,其語法與其他類似的運算環境類似。

Julia 1.9 的主要新聞

Julia 1.9 新版本在執行時間/編譯器方面進行了多項改進,包括顯著縮短了首次執行時間。套件預編譯現在會將本機程式碼儲存到「pkgimage」中,這表示預編譯期間產生的程式碼在載入套件後無需重新編譯。可以使用“--pkgimages=no”選項來停用 pkgimages 模式。

另一個值得注意的變化是,現在即使存在幾種不同類型的提交候選對象,也可以使用聯合體拆分進行注入或靜態解析,從而優化具有非類型特定參數的呼叫。這可以提高某些情況下物件類型無法完全靜態解析時的效能,方法是靜態解析“ @nospecialize-d”呼叫的位置,從而避免重新編譯。

單字符文字現在支持與字符串文字相同的語法; 這些語法可以表示無效的 UTF-8 序列,正如 Char 類型所允許的那樣。

此外,在 Linux 和 Windows 系統上,--threads=auto ”選項現在會嘗試根據 CPU 親和力來確定可用的處理器數量,而 CPU 親和性通常是在 HPC 和雲端環境中設定的遮罩。

選項「 --math-mode=fast 」已停用,建議改用語意明確的巨集「 @fastmath 」。此外,參數「 --threads」的格式改為「auto | N[,auto|M]」,其中 M 指定要建立的互動式執行緒數。

新增了「 –heap-size-hint=<size> 」選項,用於設定啟動主動垃圾回收的堆疊大小閾值。堆大小可以以位元組、千位元組 (1000 KB)、兆位元組 (300 MB) 或千兆位元組 (1,5 GB) 為單位指定。

版本 1.7 中引入的巨集「@invoke」現已匯出並可供使用。此外,當省略參數“x”的類型註解時,它現在使用“Core.Typeof(x)”方法而不是“ Any ”。這對於正確處理作為參數傳遞的類型至關重要。

此外,`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 規範的支持。
  • 元組和命名字符元組的嵌套組合現在可以用作類型參數。

最後,如果您有興趣了解更多信息,可以點擊以下鏈接查看詳情。


在 Google 中將其新增為首選來源