Python ဘာသာစကားအတွက် compiler တစ်ခုဖြစ်သည့် Nuitka 2.0 ကို ဖြန့်ချိသည်။

Nuitka 2.0 ပရောဂျက်ကို ထုတ်ဝေနိုင်ပြီဖြစ်ပြီး၊ Python scripts များကို C ကိုယ်စားပြုအဖြစ် ဘာသာပြန်ဆိုရန်အတွက် ကွန်ပြူတာတစ်ခုကို တီထွင်နိုင်ကာ ထို့နောက် CPython နှင့် အများဆုံးလိုက်ဖက်မှုရှိစေရန် libpython ကို အသုံးပြု၍ executable ဖိုင်တစ်ခုအဖြစ် စုစည်းနိုင်သည်။ လက်ရှိထွက်ရှိထားသော Python 2.6၊ 2.7၊ 3.3 - 3.11 တို့နှင့် အပြည့်အဝ တွဲဖက်အသုံးပြုနိုင်ပါသည်။ CPython နှင့် နှိုင်းယှဉ်ပါက စုစည်းထားသော script များသည် pystone စမ်းသပ်မှုများတွင် 335% စွမ်းဆောင်ရည် တိုးတက်မှုကို ပြသသည်။ ပရောဂျက်ကုဒ်ကို Apache လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ဗားရှင်းအသစ်တွင် ပြောင်းလဲမှုများထဲတွင်-

  • package configuration တွင် variables များကို အသုံးပြုနိုင်စွမ်းကို ပေါင်းထည့်ထားပြီး၊ compile time တွင် install လုပ်ထားသော packages များမှ values ​​များကို query လုပ်ပြီး backend ကိုသတ်မှတ်ရန်အတွက် ထိုတန်ဖိုးများကို အသုံးပြုနိုင်သည်။ ပြင်ဆင်သတ်မှတ်မှုရှိ ကိန်းရှင်များအတွက် ပံ့ပိုးမှုသည် ယခင်က ပလပ်အင်များကို ချိတ်ဆက်ရန် လိုအပ်သည့် ပုံမှန်နည်းလမ်းများဖြင့် အလုပ်များစွာကို ဖြေရှင်းနိုင်စေပါသည်။
  • ပက်ကေ့ဂျ်တစ်ခုစီ၏ဖွဲ့စည်းပုံကိုလွှမ်းမိုးရန် အသုံးပြုသူသတ်မှတ်ထားသော ကန့်သတ်ဘောင်များအတွက် ပံ့ပိုးမှု ထပ်လောင်းထည့်ထားသည်။ ကန့်သတ်ချက်များသည် get_parameter လုပ်ဆောင်ချက်အသစ်ကို အသုံးပြု၍ ဖတ်ရှုနိုင်ပြီး မော်ဂျူးများ၏ အပြုအမူကို ရွေးချယ်ရန် အသုံးပြုသည် (ဥပမာ၊ သင်သည် Numba JIT သို့မဟုတ် Torch JIT ကို ပိတ်ရန် ကန့်သတ်ချက်တစ်ခု သတ်မှတ်နိုင်သည်။
  • ဖွဲ့စည်းမှုပုံစံတွင် သတ်မှတ်ထားသော ဒေတာဖိုင်ပုံစံများကို သတ်မှတ်ရန်၊ သို့သော် onefile မုဒ်တွင် တည်ဆောက်သည့်အခါ စီစဥ်နိုင်သောဖိုင်မှ သီးခြားပံ့ပိုးပေးရမည့် ရွေးချယ်စရာ "--include-onefile-external-data" ကို ထည့်သွင်းထားသည်။
  • ပုံမှန်လုပ်ဆောင်မှုအမိန့် (ထိန်းချုပ်စီးဆင်းမှု) ကို ချိုးဖောက်မှုများကို ပိတ်ဆို့ထားသည့် GCC တွင် CFI (Control Flow Integrity) ကာကွယ်မှုမုဒ်ကို သတ်မှတ်ရန် "--cf-protection" option ကို ထည့်သွင်းခဲ့သည်။
  • plugin yaml ဖိုင်များအတွက်၊ သမာဓိစစ်ဆေးမှုများအတွက် checksums ဖန်တီးနိုင်စွမ်းကို အကောင်အထည် ဖော်ထားပြီး၊ ၎င်းသည် အနာဂတ်တွင် run-time verification ကို စုစည်းရန် အသုံးပြုရန် စီစဉ်ထားသည်။
  • လုပ်ဆောင်ချက်များသည် ရွေးချယ်စရာများစွာကို မျဉ်းကြောင်းများဖြင့် ပိုင်းခြားသတ်မှတ်နိုင်သည် (စာကြောင်းအသစ်ကို ကန့်သတ်ချက်အဖြစ် အသုံးပြုသည်)။ ဥပမာ- include-data-dir: | a=bc=d
  • ရွေးချယ်ထားသော ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်ရန်အတွက် အနာဂတ်တွင် အသုံးပြုမည့် loop အမျိုးအစားများ၏ ခွဲခြမ်းစိတ်ဖြာမှုကို အကောင်အထည်ဖော်ပြီးဖြစ်သည်။
  • မျှဝေခြင်းမရှိသော နှင့် လွတ်ကင်းသော ကိန်းရှင်များနှင့် အလုပ်ကို အရှိန်မြှင့်ရန် ပိုမိုကောင်းမွန်အောင် ပြင်ဆင်မှုများ ပေါင်းထည့်ထားသည်။
  • anti-bloat plugin ၏စွမ်းရည်များကို ချဲ့ထွင်ထားပြီး၊ ၎င်းသည် streamlit၊ torch၊knetworkx၊ distribution၊ skimage၊ bitsandbytes၊ tf_keras၊ pip၊ networkx နှင့် pywt libraries (အခြေခံအားဖြင့်၊ binding pytest၊ IPython၊ နှာခေါင်း၊ triton ကို ဖယ်ထုတ်ပြီး dask)။

source: opennet.ru

မှတ်ချက် Add