Kompilasi untuk berbagai platform target diimplementasikan menggunakan LLVM, dan perpustakaan yang digunakan dalam toolkit utama dari proyek Go digunakan untuk mendukung bahasa tersebut. Program yang dikompilasi dapat langsung dijalankan pada mikrokontroler, sehingga Go dapat digunakan sebagai bahasa untuk menulis skrip otomasi.
Motivasi untuk membuat proyek baru adalah keinginan untuk menggunakan bahasa Go yang sudah dikenal pada perangkat kompak - pengembang beralasan bahwa jika ada versi Python untuk mikrokontroler, mengapa tidak membuat versi serupa untuk bahasa Go. Pergi
Dalam bentuknya saat ini, 15 model mikrokontroler didukung, termasuk berbagai papan dari Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary dan Phytec. Program juga dapat dikompilasi untuk dijalankan di browser dalam format WebAssembly dan sebagai file yang dapat dieksekusi untuk Linux. Mendukung pengontrol ESP8266/ESP32
Tujuan utama proyek:
Dukungan untuk sistem multi-core bukanlah salah satu tujuan utama,
peluncuran coroutine dalam jumlah besar secara efisien (peluncuran coroutine itu sendiri didukung penuh), pencapaian tingkat kinerja kompiler referensi gc (optimasi diserahkan kepada LLVM dan dalam beberapa aplikasi Tinygo mungkin lebih cepat daripada gc) dan selesai
Perbedaan utama dari kompiler serupa
Di antara perubahan dalam rilis 0.7 adalah penerapan perintah βtinygo testβ, penyediaan dukungan pengumpulan sampah untuk sebagian besar papan target (berdasarkan ARM Cortex-M) dan WebAssembly, dukungan untuk papan HiFive1 rev B berdasarkan RISC- V arsitektur dan papan Arduino nano33,
dukungan bahasa yang ditingkatkan (dukungan untuk bidang bit menggunakan pengambil dan penyetel, dukungan untuk struktur anonim).
Sumber: opennet.ru