Nagy változások:
- A C++-ban és a Java-kódban dobott kivételek mostantól kivétel veremeket biztosítanak, ha kivétel történik a Python-kódban. Így ahhoz, hogy információt szerezzen a kivételveremről, többé nem kell meghívnia a stacktrace(t).
- A visszahívási sebesség megháromszorozódott.
- Jelentősen (nagyságrendekkel) megnövelt átviteli sebesség be
többdimenziós tömbök numpy pufferei. A többdimenziós primitívek átadják a JVM-en belül összefüggő C-elrendezésű, csak olvasható másolatokat. - Az összes látható belsőt lecseréltük CPython-megvalósításokra, valamint a __javaclass__, __javavalue__ és __javaproxy__ szimbólumokra.
törölve. Egy dedikált Java bővítőhely került minden CPython-típushoz, amely a jpype osztálytípusoktól öröklődik. Minden privát asztal átkerült a CPythonba. A Java típusoknak mostantól a JClass metaosztálytól kell örökölniük, amely típushelyeket használ. A Python alaposztályokhoz tartozó mixek nem engedélyezettek. A típusok: objektum, proxy, kivétel, szám és tömb, és közvetlenül a CPython belső megvalósításaiból öröklődnek. - Továbbfejlesztett nyomkövetés és kivételkezelés.
- A tömbszeleteket a rendszer mostantól olyan nézetként dolgozza fel, amely támogatja az eredetire való visszaírást, például egy numpy tömbként. A tömbszeletelésnél támogatást biztosítunk az értékek lépésenkénti beállításához és lekéréséhez (szelet (start, stop, lépés)).
- A tömbök mostantól támogatják a „__reversed__” beállítást.
- A Java tömbök mostantól támogatják a memórianézet API-t, és eltávolítják a numpy-tól való függőséget a puffertartalom átadásához.
- A Numpy már nem függőség (extra), és a numpy-ba való memóriaátvitel a numpy támogatással történő fordítás nélkül is elérhető.
- A JInterface metaosztálynak készült. Az interfészek ellenőrzéséhez használja az isinstance(cls, JInterface) parancsot.
- A hiányzó „mil”, „net” és „edu” TLD-k hozzáadva az alapértelmezett importáláshoz.
- Továbbfejlesztett hibaüzenetek az UnsupportedClassVersion számára az indítás során.
- A java.util.Map most KeyError-t dob, ha az elem nem található. Azok az értékek, amelyek nulla, továbbra is a várt módon adják vissza. Használja a get()-et, ha az üres kulcsokat None-ként szeretné kezelni.
- A java.util.Collection eltávolítva, mivel furcsa módon túlterhelődik a listákon lévő remove(Object) és remove(int) között. Használja a Java remove() metódust a natív Java viselkedés eléréséhez, de a túlterhelés szabályozásához erősen ajánlott a típusátadás.
- java.lang.IndexOutOfBoundsException mostantól az IndexError kivételosztály használatával fogható meg a java.util.List elemek elérésekor.
Forrás: opennet.ru