Tinygo, LLVM-ga asoslangan Go kompilyatori

kichkinagina

TinyGo: kichik joylar uchun Go kompilyatori

Agar siz mikrokontrollerlar bilan ishlasangiz va Go-ni yaxshi ko'rsangiz, Tinygo siz uchun bo'lishi mumkin, shundan beri Go p kompilyatori ishlab chiqilganOlingan kodning ixcham ko'rinishini va kam resurs iste'molini talab qiladigan hududlar uchun, masalan, o'rnatilgan tizimlar mikrokontrollerlari va WebAssembly.

TinyGo - bu kompilyator Go qurilishini turli maqsadli platformalarga olib chiqishni maqsad qilgan qaysi amalga oshiriladi LLVM dan foydalanish, va asosiy Go loyihasi asboblar to'plamida ishlatiladigan kutubxonalar tilni qo'llab-quvvatlash uchun ishlatiladi.

Tinygo veb-saytida quyidagilar tasvirlangan:

Siz TinyGo dasturlarini 94 dan ortiq turli mikrokontroller platalarida, jumladan BBC micro:bit va Arduino Unoda kompilyatsiya qilishingiz va ishga tushirishingiz mumkin.

TinyGo shuningdek, juda ixcham o'lchamdagi WebAssembly (WASM) kodini ishlab chiqishi mumkin. Siz veb-brauzerlar, shuningdek, WebAssembly System Interface (WASI) interfeyslar oilasini qo'llab-quvvatlaydigan serverlar va chekka hisoblash muhitlari uchun dasturlar yaratishingiz mumkin.

TinyGO loyihasini yaratish uchun ixcham qurilmalarda keng tarqalgan Go tilidan foydalanishga bo'lgan istak sabab bo'ldi- Ishlab chiquvchilar agar Python-ning mikrokontroller uchun versiyasi mavjud bo'lsa, unda nima uchun Go tili uchun shunga o'xshashini yaratmaysiz?

TinyGo-da, kompilyatsiya qilingan dastur to'g'ridan-to'g'ri mikrokontrollerlarda ishlashi mumkin, lyoki bu Go tilidan avtomatlashtirish skriptlarini yozish uchun til sifatida foydalanish imkonini beradi. TinyGo hozirda 94 mikrokontroller modelini qo'llab-quvvatlaydi, shu jumladan Raspberry Pi Pico, Nordic, SiFive va boshqalar kabi turli xil taxtalar.

TinyGo maxsus drayverlarni taqdim etadi ulangan tashqi qurilmalar va sensorlar bilan interfeys, shuningdek, I2C, GPIO va SPI kabi interfeyslarni qo'llab-quvvatlash uchun. Dasturlar brauzerda va Linux ikkilik fayllari sifatida ishlash uchun WebAssembly (wasm/wasi) formatida ham kompilyatsiya qilinishi mumkin.

Loyihaning asosiy vazifalari:

  • Ixcham qurilmalarda tanish Go tilining kichik to'plamidan foydalanish imkoniyati. Go rustdan ko'ra tanlangan, chunki uni o'rganish osonroq, muntazam parallellashtirish uchun ipdan mustaqil yordam beradi va keng standart kutubxonani taklif qiladi.
  • Juda ixcham bajariladigan fayllarni yaratish.
  • Mikrokontroller platalarining eng keng tarqalgan modellarini qo'llab-quvvatlash.
  • Veb uchun foydalanish va WASI (WebAssembly) yordamida mustaqil WebAssembly ilovalarini yaratish qobiliyati
  • Tizim interfeysi) fayllar, rozetkalar va operatsion tizim tomonidan taqdim etilgan boshqa funktsiyalar bilan ishlash uchun.
  • C tili funktsiyalariga qo'ng'iroq qilishda minimal xarajatlar bilan CGo qo'llab-quvvatlashi.
  • Ko'pgina standart paketlar bilan moslik va umumiy mavjud kodni o'zgartirmasdan kompilyatsiya qilish qobiliyati.
  • Shunga o'xshash eskirgan emgo kompilyatoridan farqli o'laroq, Tinygo Go'ning asl xotira boshqaruv modelini axlat yig'uvchisi orqali saqlab qoladi va samarali mahalliy kodni yaratish uchun C ko'rinishida kompilyatsiya qilish o'rniga LLVM dan foydalanadi.

Ta'kidlash joizki, Tinygo yaqinda 0.28 bo'lgan yangi versiyani oldi va ushbu yangi versiyada aks ettirish qo'llab-quvvatlashi sezilarli darajada yaxshilanganligi va aks ettirish kutubxonasining o'ziga xos tatbiq etilishini taklif qilgani ko'plab standart kutubxonalar bilan moslashishga imkon berdi. ilgari muammolarga duch kelgan paketlar.

Bundan tashqari, yangi versiyada WebAssembly’dan funksiyalarni import qilish uchun “//go:wasmimport” direktivasi hamda Gopher Badges kabi yangi kartalar qo‘llab-quvvatlanadi.

FINALMENTE Agar siz bu haqda ko'proq bilishni xohlasangiz, tafsilotlarini quyidagi havola.

Tinygo-ni Linux-ga qanday o'rnatish mumkin?

Ular uchun Tinygo-ni o'rnatishga qiziqish, Debian, Raspbian, Ubuntu va derivativlarda. Ular terminalni ochishlari kerak va unda biz quyidagi buyruqni bajaramiz:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_amd64.deb sudo dpkg -i tinygo_0.28.1_amd64.deb

ARM qurilmalari uchun maxsus tizimlar uchun (Raspbian va Ubuntu versiyalari)

Biz quyidagilarni yozamiz:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_arm64.deb sudo dpkg -i tinygo_0.28.1_arm64.deb

Arch Linux va derivativlardan foydalanuvchi bo'lganlar quyidagi buyruqni bajarishlari kerak:

sudo pacman -S tinygo

Endi Fedora foydalanuvchilari uchun:

sudo dnf install tinygo

O'rnatishni tugatgandan so'ng, ular tinygo yo'li ularning PATH-da ekanligiga ishonch hosil qilishlari kerak.

eksport PATH=$PATH:/usr/local/tinygo/bin

Va nihoyat uchun o'rnatishni tekshiring biz quyidagi buyruqni yozamiz:

tinygo versiyasi

Va u bizni shunga o'xshash narsalarni tashlashi kerak

tinygo versiyasi 0.28.1 linux/amd64

Bu haqda ko'proq ma'lumot olish uchun siz maslahat olishingiz mumkin quyidagi havola. 


Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi. Kerakli joylar bilan belgilangan *

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.