Rilis Tinygo 0.7.0, kompiler Go berbasis LLVM

Kasedhiya release proyek Tinygo 0.7.0, 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 disebarake dening 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 dipilih 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 durung, 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:

  • Generasi file eksekusi sing kompak banget;
  • Dhukungan kanggo model papan mikrokontroler sing paling umum;
  • Kamungkinan aplikasi kanggo Web;
  • Dhukungan CGo kanthi overhead minimal nalika nelpon fungsi ing C;
  • Dhukungan kanggo umume paket standar lan kemampuan kanggo ngumpulake kode standar sing wis ana tanpa ngganti.

    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 kompatibilitas karo kabeh aplikasi Go.

    Bentenipun utama saka compiler padha emgo 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

  • Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster