Hlavné zmeny:
- K volaniam metód bola pridaná vyrovnávacia pamäť, aby sa zabránilo riešeniu preťaženia, čo výrazne znižuje vplyv rozlíšenia metódy na výkon, najmä ak sa rovnaké preťaženie volá mnohokrát, ako počas vykonávania slučky.
- 4 až 100-krát, v závislosti od typu údajov, sa zrýchli prenos zoznamov, n-tic a vyrovnávacích pamätí do polí Java primitív. Konverzia využíva optimalizované spracovanie vyrovnávacích pamätí v pamäti namiesto sekvenčného API. Keď narazíte na vyrovnávaciu pamäť Pythonu, skontroluje sa konverzia iba prvého prvku, pretože tieto vyrovnávacie pamäte sú homogénne.
- Spracovanie operácií vypnutia (implementované v JPype 1.0.0, ale bolo preskočené pri príprave changelogu). JPype teraz zavolá rutinu vypnutia JVM, ktorá sa pokúsi elegantne ukončiť. To vedie k niekoľkým zmenám v správaní. Vlákna, ktoré nie sú na pozadí (volania proxy) teraz môžu udržiavať JVM otvorené, kým nie sú dokončené. Proxy hovory budú spracovávať vypnutie, kým sa hovor nedokončí, ale dostanú správu o prerušení. Súbory sú teraz správne zatvorené a vyprázdnené na disk, ak vlákna spracujú výnimku podľa očakávania. Vykonajú sa háčiky na čistenie zdrojov a finalizátory. Keď sa vytvárajú vlákna, volajú sa háčiky AtExit. Prostredníctvom démona sa pri použití JVM z Pythonu implementuje automatické pripájanie vlákna. Chybný kód, ktorý nedokáže správne spracovať vyčistenie vlákna, sa pravdepodobne zablokuje, keď sa vykoná vypnutie. Dodatočnú dokumentáciu nájdete v používateľskej príručke.
- Obal pre Throwable dostal obal pre Object namiesto očakávaného výsledku, čo viedlo k podivným konverziám z tried Pythonu.
- Opravené preklepy v importnom systéme, ktoré viedli k chybe '»jname» not found'.
- Zaistilo sa, že „^C“ bolo v KeyboardInterrupt správne povýšené.
- Opravený problém so symbolmi od Pythonu 3.5.3. PySlice_Unpack bol predstavený v nasledujúcom vydaní opravy (3.5.4) a nemal sa používať.
- Opravená chyba s numpy.linalg.inv, ktorá viedla k havárii. Problém bol vysledovaný v komunikácii medzi JVM a niektorými numpy príchuťami. Navrhovaným riešením je zavolať numpy.linalg.inv pred spustením JVM.
Zdroj: opennet.ru