Julia, wieloplatformowy język programowania, osiąga wersję 1.9

julia lang

ulia to dynamiczny, wysokopoziomowy i wydajny język do obliczeń technicznych.

Kilka dni temu ogłoszono wydanie nowej wersji języka programowania Julia 1.9, która łączy w sobie takie cechy, jak wysoka wydajność, obsługa dynamicznego pisania i wbudowane narzędzia do programowania równoległego. Składnia Julii jest zbliżona do MATLAB-a, z niektórymi elementami zapożyczonymi z Rubiego i Lispa.

Julia wyróżnia się tym, że jest wieloplatformowym i wieloparadygmatycznym językiem programowania z dynamicznym pisaniem Wysokopoziomowa, wysokowydajna platforma do ogólnych, technicznych i naukowych obliczeń, ze składnią podobną do składni innych podobnych środowisk komputerowych.

Główne nowości Julii 1.9

W tej nowej wersji Julii 1.9, która jest prezentowana, kilka ulepszenia w środowisku wykonawczym/kompilatorze, ponieważ tam było Znaczne skrócenie czasu do pierwszego uruchomienia. Prekompilacja pakietu zapisuje teraz natywny kod w „pkgimage”, co oznacza, że ​​kod wygenerowany podczas prekompilacji nie będzie musiał być ponownie kompilowany po załadowaniu pakietu. Korzystanie z trybu pkgimages można wyłączyć za pomocą opcji „–pkgimages=no”.

Kolejną wyróżniającą się zmianą jest można teraz optymalizować wywołania z argumentami niezwiązanymi z typem poprzez Join Split for Injected lub rozwiązanie statyczne, nawet jeśli istnieje kilka różnych typów kandydatów do przesłania. Może to poprawić wydajność w pewnych sytuacjach, w których typy obiektów nie są w pełni rozpoznawane statycznie, poprzez statyczne rozpoznawanie witryn wywołujących "@nospecialize-d" i uniknąć ponownej kompilacji.

Literały jednoznakowe obsługują teraz taką samą składnię jak literały łańcuchowe; ta składnia może reprezentować nieprawidłowe sekwencje UTF-8, na co pozwala typ Char.

Oprócz tego w systemach Linux i Windows opcja «--threads=auto» teraz próbuje określić dostępną liczbę procesorów w oparciu o powinowactwo procesora, które jest maską zwykle ustawianą w środowiskach HPC i chmurowych.

Opcja została wyłączona--math-mode=szybko", zamiast którego zaleca się użycie makra "@fastmath", który ma dobrze zdefiniowaną semantykę, oprócz parametru "–Wątki» ma teraz format «samochód | N[,auto|M]», gdzie M określa liczbę interaktywnych wątków do utworzenia.

Dodano opcję «--heap-size-hint=» aby ustawić próg, po przekroczeniu którego rozpocznie się aktywne wyrzucanie elementów bezużytecznych. Rozmiar można określić w bajtach, kilobajtach (1000 KB), megabajtach (300 MB) lub gigabajtach (1,5 GB).

Makro „@invoke”. wprowadzony w wersji 1.7 jest teraz eksportowany i dostępny do użytku. Oprócz, teraz użyj metody „Core.Typeof(x)”. raczej "Każdy" gdy adnotacja typu dla argumentu "x" jest pominięta. Jest to wymagane, aby typy przekazywane jako argumenty były przetwarzane poprawnie.

Ponadto „Threads.@spawn” ma teraz opcjonalny pierwszy argument „:default” lub „:interactive”. Zadanie interaktywne wymaga odpowiedzi o niskim opóźnieniu i jest zaprojektowane tak, aby było krótkie lub częste. Zadania interaktywne będą uruchamiane w interaktywnych wątkach, jeśli zostaną określone podczas uruchamiania Julii.

z inne wyróżniające się zmiany:

  • Negacja funkcji predykatu „!f” zwraca teraz funkcję złożoną „(!) ∘ f” zamiast funkcji anonimowej.
  • Funkcje podziału wymiarów działają teraz na wielu wymiarach: «eachslice”, „eachrow” i „eachcol” zwróć przedmiot"Plasterki» co pozwala wysyłce zapewnić bardziej wydajne metody.
  • makro «@kwdef» został dodany do publicznego API.
  • Naprawiono problem z kolejnością operacji w „fld1”.
  • Sortowanie jest teraz zawsze stabilne w czasie (przeprojektowany QuickSort).
  • Domyślna liczba wątków BLAS jest teraz równa liczbie wątków procesora w architekturze ARM i połowie liczby wątków procesora w innych architekturach.
  • Printf: Przerobiono komunikaty o błędach dla zniekształconych ciągów znaków dla lepszej czytelności.
  • Profil: Nowa funkcja „Profile.take_heap_snapshot(file)”, która zapisuje plik w formacie „.heapsnapshot” opartym na JSON, obsługiwanym przez Chrome.
  • Dodano obsługę specyfikacji Unicode 15.
  • Zagnieżdżone kombinacje krotek i nazwanych krotek znaków mogą być teraz używane jako parametry typu.

Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Dodaj jako preferowane źródło w Google