Julia, multiplatformní programovací jazyk dosáhl své verze 1.9

julia lang

ulia je dynamický, vysoce výkonný a vysoce výkonný jazyk pro technické výpočty.

Vydání nové verze programovacího jazyka Julia 1.9 bylo oznámeno před několika dny. Kombinuje funkce, jako je vysoký výkon, podpora dynamického typování a integrované nástroje pro paralelní programování. Syntaxe jazyka Julia je podobná MATLABu s některými prvky převzatými z Ruby a Lispu.

Julia vyniká jako vysoce výkonný, multiplatformní, multiparadigmatický, dynamicky typovaný programovací jazyk pro obecné, technické a vědecké výpočty se syntaxí podobnou syntaxi jiných podobných výpočetních prostředí.

Hlavní zprávy o Julii 1.9

Tato nová verze Julie 1.9 obsahuje několik vylepšení běhového prostředí/kompilátoru, včetně výrazného zkrácení doby do prvního spuštění. Předkompilace balíčků nyní ukládá nativní kód do souboru „pkgimage“, což znamená, že kód vygenerovaný během předkompilace nebude nutné po načtení balíčku znovu kompilovat. Použití režimu pkgimages lze zakázat pomocí volby „--pkgimages=no“.

Další pozoruhodnou změnou je, že volání s argumenty nespecifickými pro daný typ lze nyní optimalizovat pomocí sjednocování pro vkládání nebo statické rozlišení, a to i v případě, že existuje několik různých typů kandidátů na odeslání. To může zlepšit výkon v určitých situacích, kdy typy objektů nejsou staticky plně rozpoznány, statickým rozlišením míst volání „ @nospecialize-d“ a vyhnutím se rekompilaci.

Jednoznakové literály nyní podporují stejnou syntaxi jako řetězcové literály; tato syntaxe může představovat neplatné sekvence UTF-8, jak to umožňuje typ Char.

Kromě toho se v systémech Linux a Windows nyní možnost --threads=auto “ pokouší určit dostupný počet procesorů na základě afinity CPU, což je maska ​​obvykle nastavená v prostředích HPC a cloudu.

Volba „ --math-mode=fast “ byla zakázána a doporučuje se místo ní použít makro „ @fastmath “ , které má dobře definovanou sémantiku. Parametr „ --threads “ má nyní formát „auto | N[,auto|M]“ , kde M určuje počet interaktivních vláken, která mají být vytvořena.

Byla přidána možnost „ –heap-size-hint=<velikost> “ pro nastavení prahové hodnoty, po které začíná aktivní uvolňování paměti. Velikost lze zadat v bajtech, kilobajtech (1000 KB), megabajtech (300 MB) nebo gigabajtech (1,5 GB).

Makro „@invoke“ zavedené ve verzi 1.7 je nyní exportováno a k dispozici pro použití. Navíc nyní používá metodu „Core.Typeof(x)“ místo „ Any “, pokud je anotace typu pro argument „x“ vynechána. To je nezbytné pro správné zpracování typů předávaných jako argumenty.

Navíc má nyní `Threads.@spawn` volitelný první argument buď `:default`, nebo `:interactive`. Interaktivní úloha vyžaduje odezvu s nízkou latencí a je navržena tak, aby byla krátká nebo se spouštěla ​​často. Interaktivní úlohy se spustí v interaktivních vláknech, pokud je to zadáno při spuštění Julie.

Mezi další významné změny patří:

  • Negace predikátové funkce "!f" nyní namísto anonymní funkce vrací složenou funkci "(!) ∘ f".
  • Funkce rozdělení dimenzí nyní fungují na více dimenzích: «každý plátek, „každý kus“ a „každý kus“ vrátit objekt"Plátky» což umožňuje přepravě poskytovat efektivnější metody.
  • Makro «@kwdef» bylo přidáno do veřejného API.
  • Opraven problém s pořadím operací v "fld1".
  • Řazení je nyní vždy stabilní v průběhu času (přepracovaný QuickSort).
  • Výchozí počet vláken BLAS se nyní rovná počtu vláken CPU na architektuře ARM a polovině počtu vláken CPU na jiných architekturách.
  • Printf: Přepracované chybové zprávy pro chybně tvarované řetězce pro lepší čitelnost.
  • Profil: Nová funkce „Profile.take_heap_snapshot(file)“, která zapisuje soubor ve formátu „.heapsnapshot“ založeném na JSON podporovaném Chrome.
  • Přidána podpora specifikace Unicode 15.
  • Vnořené kombinace n-tic a pojmenovaných n-tic lze nyní použít jako parametry typu.

A konečně, pokud máte zájem dozvědět se více, podrobnosti naleznete na následujícím odkazu.


Přidat jako preferovaný zdroj v Googlu