Hovedendringer:
- Unntak kastet i C++ og Java-kode gir nå en unntaksstabel når et unntak oppstår i Python-kode. For å få informasjon om unntaksstakken trenger du derfor ikke lenger kalle stacktrace().
- Anropsreturhastigheten er tredoblet.
- Betydelig (etter størrelsesordener) økt overføringshastighet i
nummige buffere av flerdimensjonale arrays. Flerdimensjonale primitiver sender skrivebeskyttede kopier opprettet inne i JVM med en sammenhengende C-layout. - Alle eksponerte interne deler er erstattet med CPython-implementeringer, og symbolene __javaclass__, __javavalue__ og __javaproxy__
slettet. En dedikert Java-spor er lagt til alle CPython-typer som arver fra jpype-klassetyper. Alle private bord har blitt flyttet til CPython. Java-typer må nå arve fra JClass-metaklassen, som bruker typespor. Mixins for Python-baseklasser er ikke tillatt. Typene er Object, Proxy, Exception, Number og Array og arver direkte fra CPythons interne implementeringer. - Forbedret sporing og unntakshåndtering.
- Matriseskiver blir nå behandlet som visninger som støtter skriving tilbake til originalen, for eksempel en numpy matrise. For array-slicing gis det støtte for å angi og hente verdier i trinn (slice(start, stop, step)).
- Matriser støtter nå "__reversed__".
- Java-matriser støtter nå memoryview API og fjerner avhengigheten av numpy for å sende bufferinnholdet.
- Numpy er ikke lenger en avhengighet (ekstra) og minneoverføring til numpy er tilgjengelig uten kompilering med numpy-støtte.
- JInterface er designet som en metaklasse. Bruk isinstance(cls, JInterface) for å se etter grensesnitt.
- Lagt til manglende TLD-er "mil", "net" og "edu" til standardimporter.
- Forbedrede feilmeldinger for UnsupportedClassVersion under oppstart.
- java.util.Map kaster nå en KeyError hvis elementet ikke blir funnet. Verdier som er null returnerer fortsatt Ingen som forventet. Bruk get() hvis du vil behandle tomme nøkler som Ingen.
- Fjernet java.util.Collection da det merkelig nok overbelaster mellom remove(Object) og remove(int) på Lists. Bruk Java remove()-metoden for å få tilgang til innebygd Java-atferd, men typecasting anbefales sterkt for overbelastningskontroll.
- java.lang.IndexOutOfBoundsException kan nå fanges opp ved å bruke unntaksklassen IndexError når du får tilgang til java.util.List-elementer.
Kilde: opennet.ru