Խոշոր փոփոխություններ.
- Քեշ է ավելացվել մեթոդի զանգերին՝ խուսափելու գերբեռնվածության լուծումից՝ զգալիորեն նվազեցնելով մեթոդի լուծման արդյունավետության ազդեցությունը, հատկապես, եթե նույն գերբեռնվածությունը բազմիցս է կանչվում, ինչպես օղակներում:
- 4-ից մինչև 100 անգամ, կախված տվյալների տեսակից, ցուցակների, բուֆերների և բուֆերների փոխանցումը Java պրիմիտիվների զանգվածներին արագացված է: Փոխակերպումն օգտագործում է օպտիմիզացված հիշողության բուֆերային կառավարում Sequence API-ի փոխարեն: Երբ հանդիպում է Python բուֆեր, միայն առաջին տարրը ստուգվում է փոխակերպման համար, քանի որ այդ բուֆերները միատարր են:
- Անջատման գործողությունների կառավարում (ներդրված է JPype 1.0.0-ում, բայց բաց է թողնվել փոփոխության մատյան պատրաստելիս): JPype-ն այժմ կոչ է անում JVM-ի անջատման ընթացակարգը, որը փորձում է նրբագեղորեն դուրս գալ: Սա հանգեցնում է մի քանի վարքագծի փոփոխությունների: Ոչ ֆոնային շղթաները (պրոքսի զանգերը) այժմ կարող են բաց պահել JVM-ը մինչև դրանք չդադարեցվեն: Վստահված անձի զանգերը կգործարկեն անջատումը մինչև զանգի ավարտը, բայց կստանան ընդհատման հաղորդագրություն: Այժմ ֆայլերը պատշաճ կերպով փակված են և լցված են սկավառակի վրա, եթե շղթաները պատշաճ կերպով կարգավորեն բացառությունը: Կատարված են ռեսուրսների մաքրման կեռիկներ և վերջնականացուցիչներ: Երբ թելերը ծնվում են, AtExit կեռիկներ են կոչվում: Դեյմոնի միջոցով ավտոմատ թելի կցումն իրականացվում է Python-ից JVM-ն օգտագործելիս: Սխալ կոդը, որը չի կարողանում պատշաճ կերպով կարգավորել շղթայի մաքրումը, ամենայն հավանականությամբ, կախված կլինի անջատումից: Լրացուցիչ փաստաթղթերը ներկայացված են օգտագործողի ուղեցույցում:
- Throwable-ի փաթաթումը ակնկալվող արդյունքի փոխարեն ստանում էր Object-ի փաթաթում, ինչը հանգեցնում էր Python դասերի տարօրինակ փոխակերպումների:
- Ուղղվել են ներմուծման համակարգում տառասխալներ, որոնք հանգեցրել են «jname» չգտնված սխալի:
- Ապահովեց «^C»-ի ճիշտ առաջխաղացումը KeyboardInterrupt-ում:
- Շտկվել է նիշերի խնդիրը Python 3.5.3-ի հետ: PySlice_Unpack-ը ներկայացվել է հետագա կարկատակի թողարկման մեջ (3.5.4) և չպետք է օգտագործվեր:
- Ուղղել է վթարը numpy.linalg.inv-ով: Խնդիրը հետագծվել է JVM-ի և numpy-ի որոշ տարբերակների միջև կապի հետ: Առաջարկվող լուծումն է՝ զանգահարել numpy.linalg.inv նախքան JVM-ն սկսելը:
Source: opennet.ru