JPype 1.0.2 යාවත්කාලීන කිරීම, පයිතන් වෙතින් ජාවා පන්ති වෙත ප්‍රවේශ වීම සඳහා පුස්තකාල

ඇත නව ස්ථරය මුදා හැරීම JPype 1.0.2, ජාවා පන්ති පුස්තකාල වෙත Python යෙදුම්වල පූර්ණ ප්‍රවේශය සංවිධානය කිරීමට ඔබට ඉඩ සලසයි. Python වෙතින් JPype සමඟින්, ඔබට Java සහ Python කේතය ඒකාබද්ධ කරන දෙමුහුන් යෙදුම් නිර්මාණය කිරීමට Java-විශේෂිත පුස්තකාල භාවිතා කළ හැක. Jython මෙන් නොව, Java සමඟ ඒකාබද්ධ වීම සාක්ෂාත් කරගනු ලබන්නේ JVM සඳහා Python ප්‍රභේදයක් නිර්මාණය කිරීමෙන් නොව, හවුල් මතකය භාවිතා කරමින් අතථ්‍ය යන්ත්‍ර දෙකෙහිම මට්ටමේ අන්තර්ක්‍රියා මගිනි. යෝජිත ප්‍රවේශය හොඳ කාර්ය සාධනයක් ලබා ගැනීමට පමණක් නොව, සියලුම CPython සහ Java පුස්තකාල වෙත ප්‍රවේශය ද ලබා දේ. ව්යාපෘති කේතය විසින් බෙදා හරිනු ලැබේ Apache 2.0 යටතේ බලපත්‍ර ලබා ඇත.

ප්රධාන වෙනස්කම්:

  • අධි බර විභේදනය වළක්වා ගැනීම සඳහා ක්‍රම ඇමතුම්වලට හැඹිලියක් එක් කරන ලදී, ක්‍රම විභේදනයේ ක්‍රියාකාරී බලපෑම විශාල ලෙස අඩු කරයි, විශේෂයෙන් ලූපවල මෙන් එකම අධි බර බොහෝ වාරයක් කැඳවනු ලැබේ නම්.
  • දත්ත වර්ගය අනුව 4 සිට 100 වාරයක් දක්වා, ලැයිස්තු, ටියුපල් සහ බෆර ජාවා ප්‍රාථමික අරා වෙත මාරු කිරීම වේගවත් වේ. පරිවර්තනය අනුක්‍රමික API වෙනුවට ප්‍රශස්ත මතකයේ බෆර හැසිරවීම භාවිතා කරයි. පයිතන් බෆරයක් හමු වූ විට, මෙම බෆර සමජාතීය බැවින් පරිවර්තනය සඳහා පළමු මූලද්‍රව්‍යය පමණක් පරීක්ෂා කරනු ලැබේ.
  • වසා දැමීමේ මෙහෙයුම් හැසිරවීම (JPype 1.0.0 හි නැවත ක්‍රියාත්මක කර ඇත, නමුත් වෙනස් කිරීමේ ලොගය සකස් කිරීමේදී මඟ හැර ඇත). JPype දැන් JVM හි වසා දැමීමේ ක්‍රියා පටිපාටිය හඳුන්වනු ලබන අතර, එය අලංකාර ලෙස පිටවීමට උත්සාහ කරයි. මෙය හැසිරීමේ වෙනස්කම් කිහිපයක් ඇති කරයි. පසුබිම් නොවන නූල් (ප්‍රොක්සි ඇමතුම්) දැන් JVM අවසන් වන තුරු විවෘතව තබා ගත හැක. ඇමතුම අවසන් වන තෙක් ප්‍රොක්සි ඇමතුම් වසා දැමීම ක්‍රියාවට නංවනු ඇත, නමුත් අවලංගු පණිවිඩයක් ලැබෙනු ඇත. නූල් ව්‍යතිරේකය නිසියාකාරව හසුරුවන්නේ නම් ගොනු දැන් නිසි ලෙස වසා ඇති අතර තැටියට ෆ්ලෂ් කරනු ලැබේ. සම්පත් පිරිසිදු කිරීමේ කොකු සහ අවසන් කරන්නන් ක්රියාත්මක වේ. නූල් පැටවූ විට, AtExit කොකු කැඳවනු ලැබේ. ඩීමන් හරහා, පයිතන් වෙතින් JVM භාවිතා කරන විට ස්වයංක්‍රීය නූල් ඇමිණීම ක්‍රියාත්මක වේ. නූල් පිරිසිදු කිරීම නිසියාකාරව හැසිරවීමට අපොහොසත් වන වැරදි කේතය වසා දැමීමේ එල්ලීමට ඉඩ ඇත. අමතර ලියකියවිලි පරිශීලක අත්පොතෙහි ඇත.
  • Throwable සඳහා වූ wrapper එක අපේක්ෂිත ප්‍රතිඵලය වෙනුවට Object සඳහා wrapper එකක් ලබා ගනිමින් Python පන්ති වලින් අමුතු පරිවර්තන වලට තුඩු දුන්නේය.
  • ආයාත පද්ධතියේ නිවැරදි අක්ෂර වින්‍යාසය හේතුවෙන් '"jname" හමු නොවීය' දෝෂයක් ඇති විය.
  • KeyboardInterrupt හි "^C" නිවැරදි ප්‍රවර්ධනය සහතික කර ඇත.
  • Python 3.5.3 සමඟ ස්ථාවර අක්ෂර ගැටළුවක්. PySlice_Unpack පසුව පැච් නිකුතුවක (3.5.4) හඳුන්වා දෙන ලද අතර එය භාවිතා නොකළ යුතුය.
  • numpy.linalg.inv සමඟ බිඳ වැටීමක් නිරාකරණය කර ඇත. මෙම ගැටළුව JVM සහ numpy හි සමහර ප්‍රභේද අතර නූල් අන්තර්ක්‍රියා වෙත ආපසු ගොස් ඇත. යෝජිත විසඳුම වන්නේ JVM ආරම්භ කිරීමට පෙර numpy.linalg.inv ඇමතීමයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න