Kusintha kwa JPype 1.0.2, laibulale yopezera makalasi a Java kuchokera ku Python

Ipezeka kutulutsidwa kwatsopano kwa interlayer JPype 1.0.2, zomwe zimalola mapulogalamu a Python kukhala ndi mwayi wofikira ku malaibulale am'kalasi muchilankhulo cha Java. Ndi JPype yochokera ku Python, mutha kugwiritsa ntchito malaibulale apadera a Java kuti mupange mapulogalamu osakanizidwa omwe amaphatikiza ma code a Java ndi Python. Mosiyana ndi Jython, kuphatikiza ndi Java kumatheka osati popanga mtundu wa Python wa JVM, koma polumikizana pamlingo wa makina onse awiri omwe amagwiritsa ntchito kukumbukira kwawo. Njira yomwe ikuperekedwa imalola osati kungochita bwino, komanso imapereka mwayi wopezeka ku malaibulale onse a CPython ndi Java. Project kodi wogawidwa ndi zololedwa pansi pa Apache 2.0.

Zosintha zazikulu:

  • Chosungira chawonjezedwa pamayitanidwe a njira kuti mupewe kuchulukirachulukira, zomwe zimachepetsa kwambiri magwiridwe antchito akusintha njira, makamaka ngati kuchulukira komweku kumayitanidwa nthawi zambiri, monga nthawi ya loop.
  • Kuyambira nthawi 4 mpaka 100, kutengera mtundu wa data, kusamutsa mindandanda, ma tuples ndi ma buffers kupita kumagulu a Java primitives kumafulumizitsa. Kusinthaku kumagwiritsa ntchito kukhathamiritsa kwa ma buffers mu-memory, m'malo mwa Sequence API. Mukakumana ndi buffer ya Python, chinthu choyamba chokha ndi chomwe chimayang'aniridwa kuti chisinthidwe, popeza ma buffers ndi ofanana.
  • Kukonza ntchito zotseka (zokhazikitsidwa mu JPype 1.0.0, koma zidalumphidwa pokonzekera zosintha). JPype tsopano ikuyitanitsa chizolowezi chotseka cha JVM, chomwe chimayesa kutuluka mwaulemu. Izi zimabweretsa kusintha kangapo m'makhalidwe. Ulusi wopanda kumbuyo (mayimbidwe a proxy) tsopano atha kusunga JVM mpaka atamaliza. Kuyimba kwa projekiti kudzayimitsa mpaka kuyimitsa, koma alandila uthenga wochotsa. Mafayilo tsopano amatsekedwa bwino ndikukankhidwira ku diski ngati ulusiwo ukugwira zomwezo momwe zimayembekezeredwa. Nkhokwe zotsuka zida ndi zomaliza zimachitidwa. Pamene ulusi umatulutsidwa, mbedza za AtExit zimatchedwa. Kupyolera mu daemon, kulumikiza ulusi wokhazikika kumayendetsedwa pogwiritsa ntchito JVM kuchokera ku Python. Buggy code yomwe siyingagwire bwino ntchito yoyeretsa ulusi ikhoza kupachika pamene kutsekedwa kuchitidwa. Zolemba zowonjezera zitha kupezeka mu bukhu la ogwiritsa ntchito.
  • Chovala cha Throwable chidalandira chokulunga cha Object m'malo mwazotsatira zomwe zimayembekezeredwa, zomwe zidapangitsa kutembenuka kwachilendo kuchokera kumakalasi a Python.
  • Ma typos okhazikika mumayendedwe olowetsa omwe adayambitsa cholakwika 'Β»jnameΒ» sichinapezeke'.
  • Kuonetsetsa kuti "^C" idakwezedwa bwino mu KeyboardInterrupt.
  • Vuto lokhazikika ndi zizindikiro kuyambira Python 3.5.3. PySlice_Unpack idayambitsidwa mu chigamba chotsatira (3.5.4) ndipo sichiyenera kugwiritsidwa ntchito.
  • Tinakonza cholakwika ndi numpy.linalg.inv chomwe chadzetsa ngozi. Nkhaniyi idayambika pakulumikizana pakati pa JVM ndi zokometsera zina. Yankho lomwe laperekedwa ndikuyimbira numpy.linalg.inv musanayambe JVM.

Source: opennet.ru

Kuwonjezera ndemanga