Glavne promjene:
- Izuzeci u C++ i Java kodu sada pružaju stog izuzetaka kada se dogodi izuzetak u Python kodu. Stoga, da biste dobili informacije o steku izuzetaka, više ne morate pozivati stacktrace().
- Brzina povratnog poziva je utrostručena.
- Značajno (po redovima veličine) povećana brzina prijenosa u
numpy baferi višedimenzionalnih nizova. Višedimenzionalni primitivi prenose kopije samo za čitanje kreirane unutar JVM-a sa neprekidnim C rasporedom. - Svi izloženi interni elementi su zamijenjeni CPython implementacijama, a simboli __javaclass__, __javavalue__ i __javaproxy__
obrisano. Namjenski Java slot je dodat svim CPython tipovima koji nasljeđuju tipove jpype klasa. Sve privatne tabele su premještene u CPython. Java tipovi sada moraju naslijediti od JClass metaklase, koja koristi utore tipa. Miksovi za Python osnovne klase nisu dozvoljeni. Tipovi su Object, Proxy, Exception, Number i Array i nasleđuju se direktno iz internih implementacija CPython-a. - Poboljšano praćenje i rukovanje izuzetcima.
- Isječci niza se sada obrađuju kao pogledi koji podržavaju upisivanje natrag u original, kao što je niz numpy. Za rezanje niza, pruža se podrška za postavljanje i preuzimanje vrijednosti u koracima (slice(start, stop, step)).
- Nizovi sada podržavaju "__reversed__".
- Java nizovi sada podržavaju API za prikaz memorije i uklanjaju ovisnost o numpyju za prosljeđivanje sadržaja bafera.
- Numpy više nije zavisnost (ekstra) i prijenos memorije na numpy je dostupan bez kompajliranja s podrškom za numpy.
- JIinterface je dizajniran kao meta klasa. Koristite isinstance(cls, JInterface) za provjeru sučelja.
- Dodani nedostajući TLD-ovi "mil", "net" i "edu" za podrazumevani uvoz.
- Poboljšane poruke o grešci za UnsupportedClassVersion tokom pokretanja.
- java.util.Map sada baca KeyError ako element nije pronađen. Vrijednosti koje su null i dalje vraćaju Ništa kao što se očekivalo. Koristite get() ako želite da prazne ključeve tretirate kao Ništa.
- Uklonjena java.util.Collection jer se čudno preopterećuje između remove(Object) i remove(int) na listama. Koristite metodu Java remove() za pristup izvornom Java ponašanju, ali se preporuča uvođenje tipova za kontrolu preopterećenja.
- java.lang.IndexOutOfBoundsException sada može biti uhvaćen korištenjem klase izuzetka IndexError kada se pristupa elementima java.util.List.
izvor: opennet.ru