Hlavné zmeny:
- Výnimky vyvolané v kóde C++ a Java teraz poskytujú zásobník výnimiek, keď sa v kóde Pythonu vyskytne výnimka. Ak teda chcete získať informácie o zásobníku výnimiek, už nemusíte volať stacktrace().
- Rýchlosť návratu hovoru sa strojnásobila.
- Výrazne (rádovo) zvýšená prenosová rýchlosť v
numpy buffery viacrozmerných polí. Multidimenzionálne primitíva odovzdávajú kópie iba na čítanie vytvorené vo vnútri JVM so súvislým rozložením C. - Všetky vystavené interné prvky boli nahradené implementáciami CPythonu a symbolmi __javaclass__, __javavavalue__ a __javaproxy__
vymazané. Vyhradený Java slot bol pridaný do všetkých typov CPython, ktoré dedia z typov triedy jpype. Všetky súkromné tabuľky boli presunuté do CPythonu. Typy Java musia teraz dediť z metatriedy JClass, ktorá používa typové sloty. Mixiny pre základné triedy Pythonu nie sú povolené. Typy sú Object, Proxy, Exception, Number a Array a dedia sa priamo z interných implementácií CPythonu. - Vylepšené sledovanie a spracovanie výnimiek.
- Rezy poľa sú teraz spracované ako pohľady, ktoré podporujú spätný zápis do originálu, ako napríklad numpy pole. Pre segmentovanie poľa je poskytovaná podpora pre nastavenie a načítanie hodnôt v krokoch (slice(start, stop, step)).
- Polia teraz podporujú "__reversed__".
- Polia Java teraz podporujú rozhranie memoryview API a odstraňujú závislosť na numpy pri odovzdávaní obsahu vyrovnávacej pamäte.
- Numpy už nie je závislosť (extra) a prenos pamäte do numpy je dostupný bez kompilácie s podporou numpy.
- JInterface je navrhnutý ako meta trieda. Na kontrolu rozhraní použite isinstance(cls, JInterface).
- Do predvolených importov boli pridané chýbajúce TLD „mil“, „net“ a „edu“.
- Vylepšené chybové hlásenia pre UnsupportedClassVersion počas spúšťania.
- java.util.Map teraz vyvolá chybu KeyError, ak sa prvok nenájde. Hodnoty, ktoré sú null, stále vracajú žiadne, ako sa očakávalo. Ak chcete prázdne kľúče považovať za žiadne, použite get().
- Odstránená java.util.Collection, pretože sa čudne preťažuje medzi remove(Object) a remove(int) v zoznamoch. Na prístup k natívnemu správaniu Java použite metódu Java remove(), ale na kontrolu preťaženia sa dôrazne odporúča pretypovanie.
- java.lang.IndexOutOfBoundsException je teraz možné zachytiť pomocou triedy výnimky IndexError pri prístupe k prvkom java.util.List.
Zdroj: opennet.ru