Hlavní změny:
- Výjimky vyvolané v kódu C++ a Java nyní poskytují zásobník výjimek, když dojde k výjimce v kódu Pythonu. Chcete-li tedy získat informace o zásobníku výjimek, již nemusíte volat stacktrace().
- Rychlost zpětného volání se ztrojnásobila.
- Výrazně (řádově) narostla přenosová rychlost v
numpy buffery vícerozměrných polí. Vícerozměrná primitiva předávají kopie pouze pro čtení vytvořené uvnitř JVM se souvislým rozložením C. - Všechny vystavené vnitřní části byly nahrazeny implementacemi CPythonu a symboly __javaclass__, __javavavalue__ a __javaproxy__
smazáno. Ke všem typům CPython, které dědí z typů třídy jpype, byl přidán vyhrazený slot Java. Všechny soukromé tabulky byly přesunuty do CPythonu. Typy Java musí nyní dědit z metatřídy JClass, která používá typové sloty. Mixiny pro základní třídy Pythonu nejsou povoleny. Typy jsou Object, Proxy, Exception, Number a Array a dědí se přímo z interních implementací CPythonu. - Vylepšené trasování a zpracování výjimek.
- Řezy pole jsou nyní zpracovány jako pohledy, které podporují zápis zpět do originálu, jako je numpy pole. Pro segmentování pole je poskytována podpora pro nastavení a načítání hodnot v krocích (slice(start, stop, step)).
- Pole nyní podporují "__reversed__".
- Pole Java nyní podporují memoryview API a odstraňují závislost na numpy pro předávání obsahu vyrovnávací paměti.
- Numpy již není závislost (extra) a přenos paměti do numpy je dostupný bez kompilace s podporou numpy.
- JInterface je navržen jako meta třída. Pro kontrolu rozhraní použijte isinstance(cls, JInterface).
- Do výchozích importů byly přidány chybějící TLD „mil“, „net“ a „edu“.
- Vylepšené chybové zprávy pro UnsupportedClassVersion během spouštění.
- java.util.Map nyní vyvolá chybu KeyError, pokud není prvek nalezen. Hodnoty, které jsou null, podle očekávání stále vracejí Žádné. Pokud chcete prázdné klíče považovat za žádné, použijte get().
- Odstraněno java.util.Collection, protože se podivně přetěžuje mezi remove(Object) a remove(int) v seznamech. Pro přístup k nativnímu chování Java použijte metodu Java remove(), ale pro kontrolu přetížení se důrazně doporučuje přetypování.
- java.lang.IndexOutOfBoundsException lze nyní zachytit pomocí třídy výjimky IndexError při přístupu k prvkům java.util.List.
Zdroj: opennet.ru