Tinygo 0.7.0၊ LLVM-based Go compiler ကို ဖြန့်ချိသည်။

ရနိုင်ပါတယ် စီမံကိန်းထုတ်ပြန်ခြင်း။ Tinygo 0.7.0မိုက်ခရိုကွန်ထရိုလာများနှင့် ကျစ်လစ်သော တစ်ခုတည်းသော ပရိုဆက်ဆာစနစ်များကဲ့သို့ ထွက်ပေါ်လာသော ကုဒ်များနှင့် အရင်းအမြစ်သုံးစွဲမှုနည်းသော နယ်ပယ်များအတွက် Go language compiler ကို တီထွင်ထုတ်လုပ်နေပါသည်။ ကုဒ် ဖြန့်ဝေသည် BSD လိုင်စင်အောက်တွင်။

အမျိုးမျိုးသော ပစ်မှတ်ပလက်ဖောင်းများအတွက် စုစည်းမှုကို LLVM သုံးပြီး လုပ်ဆောင်ပြီး Go ပရောဂျက်မှ ပင်မကိရိယာအစုံတွင် အသုံးပြုသည့် စာကြည့်တိုက်များကို ဘာသာစကားကို ပံ့ပိုးရန်အတွက် အသုံးပြုပါသည်။ စုစည်းထားသော ပရိုဂရမ်ကို မိုက်ခရိုကွန်ထရိုလာများပေါ်တွင် တိုက်ရိုက်လုပ်ဆောင်နိုင်ပြီး Go အား အလိုအလျောက်စနစ် script များရေးသားရန်အတွက် ဘာသာစကားအဖြစ် အသုံးပြုနိုင်သည်။

ပရောဂျက်အသစ်ဖန်တီးရခြင်း၏ စေ့ဆော်မှုသည် ကျစ်ကျစ်လျစ်လျစ်သော စက်ပစ္စည်းများတွင် ရင်းနှီးသော Go ဘာသာစကားကို အသုံးပြုလိုခြင်းဖြစ်သည် - developer များသည် microcontrollers အတွက် Python ဗားရှင်းရှိပါက၊ Go ဘာသာစကားအတွက် အလားတူတစ်ခုကို မဖန်တီးရခြင်းဖြစ်သည်ဟု ဆော့ဖ်ဝဲအင်ဂျင်နီယာများက အကြောင်းပြချက်ပေးသည်။ သွားတော့ ရွေးချယ်ထားသည် သင်ယူရန်ပိုမိုလွယ်ကူသောကြောင့် Rust အစား coroutine-based parallelization အတွက် thread-independent ပံ့ပိုးမှု၊ နှင့် ကျယ်ပြန့်သော စံစာကြည့်တိုက် ("ဘက်ထရီများပါ၀င်သည်") ကို ပံ့ပိုးပေးပါသည်။

၎င်း၏လက်ရှိပုံစံတွင်၊ Adafruit၊ Arduino၊ BBC micro:bit၊ ST Micro၊ Digispark၊ Nordic Semiconductor၊ Makerdiary နှင့် Phytec တို့မှ ဘုတ်များအပါအဝင် မိုက်ခရိုကွန်ထရိုလာ ၁၅ ခုကို ပံ့ပိုးထားသည်။ ပရိုဂရမ်များကို WebAssembly ဖော်မတ်နှင့် Linux အတွက် လုပ်ဆောင်နိုင်သော ဖိုင်များအဖြစ် ဘရောက်ဆာတစ်ခုတွင်လည်း စုစည်းနိုင်သည်။ ESP15/ESP8266 ထိန်းချုပ်ကိရိယာများကို ပံ့ပိုးပေးသည်။ မရသေးသို့သော် TinyGo နှင့် ပေါင်းစည်းရန် အဆင်သင့်မဖြစ်သေးဟု မှတ်သားထားဆဲဖြစ်သည့် LLVM ရှိ Xtensa ချစ်ပ်အတွက် ပံ့ပိုးမှုထည့်ရန် သီးခြားပရောဂျက်တစ်ခုကို တီထွင်လျက်ရှိသည်။

ပရောဂျက်၏ အဓိကပန်းတိုင်များ-

  • အလွန်ကျစ်လစ်သိပ်သည်းသော executable files များ၏မျိုးဆက်;
  • မိုက်ခရိုကွန်ထရိုလာဘုတ်များ၏ အသုံးအများဆုံးမော်ဒယ်များအတွက် ပံ့ပိုးမှု။
  • ဝဘ်အတွက်လျှောက်လွှာ၏ဖြစ်နိုင်ခြေ;
  • C တွင် လုပ်ဆောင်ချက်များကို ခေါ်ဆိုသောအခါတွင် အနည်းငယ်မျှသာ ရှိသော အပေါ်မှ CGo ပံ့ပိုးမှု။
  • စံပက်ကေ့ဂျ်အများစုအတွက် ပံ့ပိုးမှုနှင့် ၎င်းကိုမပြောင်းလဲဘဲ ယေဘူယျရှိပြီးသားကုဒ်များကို စုစည်းနိုင်မှု။

    Multi-core စနစ်များအတွက် ပံ့ပိုးမှုသည် အဓိက ပန်းတိုင်များထဲတွင် မဟုတ်ဘဲ၊
    ကော်ရိုတင်းအများအပြားကို ထိရောက်စွာ လွှင့်တင်ခြင်း (coroutines ကိုယ်တိုင်က အပြည့်အဝ ပံ့ပိုးထားသည်)၊ အကိုးအကား compiler gc ၏ စွမ်းဆောင်ရည်အဆင့် အောင်မြင်မှု (ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းကို LLVM တွင်ထားခဲ့ပြီး အချို့သော application များတွင် Tinygo သည် gc ထက် ပိုမြန်နိုင်သည်) နှင့် ပြီးမြောက်ပါသည်။ လိုက်ဖက်တဲ့ Go အက်ပ်များအားလုံးနှင့်။

    အလားတူ compiler မှ အဓိက ကွာခြားချက် emgo အမှိုက်စုဆောင်းခြင်းကို အသုံးပြု၍ Go ၏ မူရင်းမှတ်ဉာဏ်စီမံခန့်ခွဲမှုပုံစံကို ထိန်းသိမ်းရန်နှင့် ၎င်းကို C ကိုယ်စားပြုမှုအဖြစ် စုစည်းမည့်အစား ထိရောက်သောကုဒ်များထုတ်လုပ်ရန် LLVM ကိုအသုံးပြုရန် ကြိုးပမ်းမှုတစ်ခုဖြစ်သည်။ Tinygo သည် အချိန်ဇယားဆွဲခြင်း၊ မှတ်ဉာဏ်ခွဲဝေမှုစနစ်နှင့် ကျစ်လစ်သိပ်သည်းသောစနစ်များအတွက် အကောင်းဆုံးလုပ်ဆောင်ပေးသည့် ကြိုးဆွဲကိရိယာများကို အကောင်အထည်ဖော်သည့် runtime စာကြည့်တိုက်အသစ်ကိုလည်း ပေးပါသည်။ စင့်ခ်နှင့်ရောင်ပြန်ဟပ်ခြင်းကဲ့သို့သော ပက်ကေ့ဂျ်အချို့ကို runtime အသစ်ပေါ်အခြေခံ၍ ပြန်လည်ဖန်တီးထားသည်။

    ထုတ်ဝေမှု 0.7 တွင် အပြောင်းအလဲများထဲတွင် RISC-ကိုအခြေခံ၍ HiFive1 rev B ဘုတ်အဖွဲ့အတွက် ပံ့ပိုးမှုဖြစ်သော ပစ်မှတ်ဘုတ်အများစုအတွက် အမှိုက်စုဆောင်းခြင်း ပံ့ပိုးမှု ပံ့ပိုးပေးမှု နှင့် WebAssembly၊ V architecture နှင့် Arduino nano33 board ၊
    တိုးတက်သော ဘာသာစကားပံ့ပိုးမှု ( getters နှင့် setters များကို အသုံးပြု၍ bit နယ်ပယ်များအတွက် ပံ့ပိုးမှု၊ အမည်မသိ ဖွဲ့စည်းပုံများအတွက် ပံ့ပိုးမှု)။

    source: opennet.ru

  • မှတ်ချက် Add