Асноўныя змены:
- У выклік метадаў дададзены кэш, які дазваляе пазбегнуць дазволу перагрузак, што значна памяншае ўплыў на прадукцыйнасць дазволу метадаў, асабліва калі адна і тая ж перагрузка выклікаецца шмат разоў, як падчас выканання цыклаў.
- Ад 4 да 100 разоў, у залежнасці ад тыпу дадзеных, паскорана перадача спісаў, картэжаў і буфераў у масівы Java-прымітываў. Пераўтварэнне выкарыстоўвае аптымізаваную апрацоўку буфераў у памяці, замест Sequence API. Калі Python-буфер сустракаецца, толькі першы элемент правяраецца для пераўтварэння, бо дадзеныя буферы аднастайныя.
- Апрацоўка аперацый shutdown (рэалізавана яшчэ ў JPype 1.0.0, але было прапушчана пры падрыхтоўцы спісу змен). JPype зараз выклікае shutdown-працэдуру JVM, якая спрабуе выканаць вынахад у рэжыме "gracefully". Гэта прыводзіць да некалькіх змен у паводзінах. Ня фонавыя ніткі (proxy call) зараз могуць трымаць JVM адчыненым датуль, пакуль яны не будуць завершаны. Выклікі Proxy будуць апрацоўваць shutdown да таго часу, пакуль выклік не завершаны, але атрымаюць паведамленне аб перапыненні. Файлы зараз зачыняюцца як трэба і скідаюць дадзеныя на дыск (flush), калі ніткі апрацуюць выключэнне патрэбнай выявай. Выконваюцца хукі ачысткі рэсурсаў і фіналізатары. Пры спараджэнні нітак выклікаюцца AtExit-хукі. Праз дэман рэалізавана аўтаматычнае далучэнне нітак пры выкарыстанні JVM з Python. Памылковы код, які не можа правільна апрацаваць ачыстку ніткі, верагодна завісне пры выкананні shutdown. Дадатковая дакументацыя знаходзіцца ў інструкцыі па выкарыстанні.
- Абгортка для Throwable атрымлівала абгортку для Object замест чаканага выніку, што прыводзіла да дзіўных пераўтварэнняў з Python-класаў.
- Выпраўленыя памылкі друку ў сістэме імпарту, якія прыводзяць да высновы памылкі 'jname' not found'.
- Забяспечана карэктнае прасоўванне "^ C" у KeyboardInterrupt.
- Ухіленая праблема з знакамі з Python 3.5.3. PySlice_Unpack быў уведзены ў наступным патч-рэлізе (3.5.4) і яго не трэба было выкарыстоўваць.
- Разабрана памылка з numpy.linalg.inv, якая прыводзіць да падзення. Праблема была адсочана да ўзаемадзеяння патокаў паміж JVM і некаторымі варыянтамі numpy. Прапанаванае рашэнне – выклік numpy.linalg.inv да запуску JVM.
Крыніца: opennet.ru