JDK 19: Funkcje planowane dla Javy 19

Wektorowe API i port dla Linuksa/RISC-V to oficjalnie planowane funkcje dla Javy 19 - wydania standardowej Javy bez LTS, które ukaże się we wrześniu.

JDK 19: Funkcje planowane dla Javy 19

Getty Images

Wiadomo już, ze Java Development Kit 19, który ma być dostępny we wrześniu tego roku, otrzyma drugą funkcję: wektorowy interfejs API do wyrażania obliczeń wektorowych, który w następnym wydaniu Javy zostanie poddany czwartej inkubacji. Drugą proponowaną funkcją jest port JDK na otwartą architekturę zestawu instrukcji (ISA) Linux/RISC-V.

JDK 19, lub po prostu Java 19, potencjalnie może zawierać ogromną liczbę funkcji, od uniwersalnych generycznych po obiekty wartości, zgodnie z planami ulepszenia Javy. Jednak jak na razie API wektorowe i port dla RISC-V to jedyne oficjalnie zaproponowane funkcje, które mają być dostępne w JDK 19. JDK 19 będzie następcą JDK 18, który pojawił się 22 marca. Standardowa Java jest wydawana co sześć miesięcy.

Zobacz również:

  • Najpopularniejszą dystrybucją Javy jest Oracle
  • SUSE ma pierwszego partnera Platinum w Polsce
  • GitHub promuje nowy rodzaj sponsoringu

Twórcy OpenJDK opublikowali oficjalny harmonogram wydawania JDK 19, zgodnie z którym ukaże się ono 20 września jako wydanie produkcyjne, poprzedzone fazami rampdown 9 czerwca i 21 lipca oraz wydaniami kandydackimi (release candidates), które zostaną opublikowane 11 i 25 sierpnia.

API wektorowe wyraża obliczenia wektorowe, które w czasie wykonywania są niezawodnie kompilowane do optymalnych instrukcji wektorowych na obsługiwanych architekturach procesorów. Programiści korzystający z API zyskują sposób na pisanie złożonych algorytmów wektorowych w Javie, wykorzystując auto-wektoryzator HotSpota, ale z modelem użytkownika, który sprawia, że wektoryzacje są bardziej przewidywalne i solidne. Wektorowe API zostało wcześniej wprowadzone do JDK 16, JDK 17 i JDK 19.

Ulepszenia API proponowane dla JDK 19 obejmują ulepszenia ładowania i przechowywania wektorów do i z MemorySegments, jak zdefiniowano przez funkcje obce i podgląd API pamięci. JDK 19 doda również dwie operacje wektorów międzypasmowych, kompresję i rozszerzanie, wraz z uzupełniającą operacją kompresji maski wektorowej. Operacja kompresji wektora odwzorowuje pasy wektora źródłowego, wybranego przez maskę, na wektor docelowy w kolejności pasów, podczas gdy operacja rozszerzania robi to odwrotnie. Operacja kompresji jest przydatna w filtrowaniu wyników zapytań.

W innym dodatku do API wektorów rozszerzono operacje bitowej całki lanewidowej, w tym takie operacje, jak liczenie liczby bitów jeden, odwracanie kolejności bitów oraz kompresja i ekspansja bitów. Celem API było zapewnienie jasności i zwięzłości, niezależności od platformy, niezawodnego działania w czasie wykonywania i kompilacji na architekturach x64 i AArch64 oraz umożliwienie „zgrabnej” degradacji w sytuacjach, w których obliczenie wektorowe nie może być w pełni wyrażone w czasie wykonywania jako sekwencja operacji wektorowych.

Dzięki portowi Linux/RISC-V Java zyskałaby obsługę zestawu instrukcji sprzętowych, który jest już obsługiwany przez szeroką gamę narzędzi językowych. RISC-V to rodzina pokrewnych układów ISA. Port Linux/RISC-V obsługiwałby tylko konfigurację RV64GV układu RISC-V, 64-bitowy ISA ogólnego przeznaczenia, który zawiera instrukcje wektorowe. Twórcy Javy mogą w przyszłości rozważyć inne konfiguracje RISC-V.

Port będzie obsługiwał następujące opcje maszyny wirtualnej HotSpot: interpreter szablonowy, kompilator JIT C1 (klient), kompilator JIT C2 (serwer) oraz wszystkie aktualne garbage collectory mainline, w tym ZGC i Shenandoah. Samo przenoszenie jest już prawie zakończone; głównym celem JDK Enhancement Proposal (JEP) jest integracja portu z repozytorium mainline JDK.

Poza portem RISC-V i wektorowym API, wydaje się, że oficjalnym celem JDK 19 jest także zapowiedź API funkcji obcych i pamięci, pozwalającego programom Java na współpracę z kodem i danymi spoza runtime JVM, ponieważ sama propozycja API wymienia JDK 19 jako miejsce docelowe.

Podobnie jak JDK 18, JDK 19 ma być wydaniem krótkoterminowym, z zaledwie sześciomiesięcznym wsparciem na poziomie Premier.

Poprzednie wydanie JDK 17 z 14 września 2021 roku było wydaniem Long Term Support (LTS), z kilkuletnim wsparciem.

Źródło: Infoworld

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200