release proyek , sing ngembangake kompiler basa Go kanggo wilayah sing mbutuhake perwakilan kompak saka kode sing diasilake lan konsumsi sumber daya sing sithik, kayata mikrokontroler lan sistem prosesor tunggal sing kompak. Kode ing lisensi BSD.
Kompilasi kanggo macem-macem platform target diimplementasikake nggunakake LLVM, lan perpustakaan sing digunakake ing toolkit utama saka proyek Go digunakake kanggo ndhukung basa kasebut. Program sing dikompilasi bisa langsung diluncurake ing mikrokontroler, ngidini Go digunakake minangka basa kanggo nulis skrip otomatisasi.
Motivasi kanggo nggawe proyek anyar yaiku kepinginan kanggo nggunakake basa Go sing akrab ing piranti kompak - para pangembang duwe alasan yen ana versi Python kanggo mikrokontroler, mula kenapa ora nggawe sing padha kanggo basa Go. Tindak tinimbang Rust amarga iku luwih gampang kanggo sinau, menehi support thread-independen kanggo parallelization basis coroutine, lan nawakake perpustakaan standar ekstensif ("baterei klebu").
Ing wangun saiki, 15 model mikrokontroler didhukung, kalebu macem-macem papan saka Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary lan Phytec. Program uga bisa dikompilasi kanggo mbukak ing browser ing format WebAssembly lan minangka file eksekusi kanggo Linux. Ndhukung pengontrol ESP8266 / ESP32 , nanging proyèk kapisah lagi dikembangaké kanggo nambah support kanggo chip Xtensa ing LLVM, kang isih ditandhani ora stabil lan ora siap kanggo integrasi karo TinyGo.
Tujuan utama proyek:
Dhukungan kanggo sistem multi-inti ora kalebu tujuan utama,
peluncuran efisien saka jumlah coroutine sing akeh (peluncuran coroutine dhewe didhukung kanthi lengkap), prestasi tingkat kinerja kompiler referensi gc (optimasi ditinggalake menyang LLVM lan ing sawetara aplikasi Tinygo bisa uga luwih cepet tinimbang gc) lan lengkap karo kabeh aplikasi Go.
Bentenipun utama saka compiler padha minangka upaya kanggo ngreksa model manajemen memori asli Go nggunakake koleksi sampah lan nggunakake LLVM kanggo generate kode efisien tinimbang ngumpulake menyang perwakilan C. Tinygo uga nawakake perpustakaan runtime anyar sing ngetrapake panjadwal, sistem alokasi memori, lan panangan string sing dioptimalake kanggo sistem kompak. Sawetara paket, kayata sinkronisasi lan nggambarake, wis digawe maneh adhedhasar runtime anyar.
Antarane owah-owahan ing release 0.7 punika implementasine saka printah "test tinygo", panentu support koleksi sampah kanggo paling Papan target (adhedhasar ARM Cortex-M) lan WebAssembly, support kanggo Papan HiFive1 rev B adhedhasar RISC- arsitektur V lan papan Arduino nano33,
dhukungan basa sing luwih apik (ndhukung lapangan bit nggunakake getter lan setter, dhukungan kanggo struktur anonim).
Source: opennet.ru
