Fa'asa'olotoina o Tinygo 0.7.0, LLVM-fa'avae Go tu'ufa'atasi

Avanoa fa'amatu'u galuega Tinygo 0.7.0, lea o lo'o fa'atupuina se fa'aputuga gagana Go mo vaega e mana'omia le fa'atusaina fa'atusatusa o le fa'ai'uga fa'ai'uga ma le maualalo o le fa'aaogāina o puna'oa, e pei o microcontrollers ma fa'apipi'i fa'apipi'i faiga e tasi. Code tufatufaina e i lalo ole laisene BSD.

O le tu'ufa'atasiga mo fa'atūlaga fa'atatau eseese o lo'o fa'atinoina i le fa'aaogaina o le LLVM, ma o faletusi o lo'o fa'aogaina i le meafaigaluega autu mai le Go project e fa'aoga e lagolago ai le gagana. O le polokalame tu'ufa'atasia e mafai ona fa'atautaia sa'o i luga o microcontrollers, fa'atagaina Go e fa'aoga e fai ma gagana mo le tusiaina o tusitusiga fa'aautomatika.

O le faaosofiaga mo le fatuina o se poloketi fou o le manaʻo e faʻaoga le gagana masani Go i luga o masini faʻapipiʻi - na manatu le au atinaʻe afai e iai se Python version mo microcontrollers, aisea la e le faia ai se mea tutusa mo le gagana Go. Alu filifilia nai lo le Rust aua e faigofie ona aʻoaʻoina, e maua ai le lagolago tutoʻatasi filo mo le faʻatusaina o le coroutine, ma ofoina atu se faletusi masani lautele ("e aofia ai maa").

I lona tulaga nei, 15 microcontroller faʻataʻitaʻiga o loʻo lagolagoina, e aofia ai laupapa eseese mai Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ma Phytec. E mafai fo'i ona tu'ufa'atasia polokalame e tamo'e i totonu o se su'esu'ega i le WebAssembly format ma avea ma faila fa'atino mo Linux. Lagolago ESP8266/ESP32 pule E le'o le taimi nei, ae o se isi poloketi o loʻo atiaʻe e faʻaopoopo le lagolago mo le Xtensa chip i le LLVM, lea o loʻo faʻailogaina pea e le mautu ma e le o sauni mo le tuʻufaʻatasia ma TinyGo.

Sini autu ole poloketi:

  • Fa'atupuina o faila e mafai ona fa'atinoina;
  • Lagolago mo faʻataʻitaʻiga masani o laupapa microcontroller;
  • Avanoa o talosaga mo le Upega Tafaʻilagi;
  • Lagolago CGo ma le la'ititi la'ititi pe a vala'au galuega ile C;
  • Lagolago mo le tele o afifi masani ma le mafai ona tuʻufaʻatasia tulafono masani o loʻo iai e aunoa ma le suia.

    Lagolago mo multi-core faiga e le o se tasi o sini autu,
    faʻalelei lelei le faʻalauiloaina o se numera tele o coroutines (o le faʻalauiloaina o coroutines lava ia e lagolagoina atoatoa), ausia le tulaga o le faʻatinoga o le reference compiler gc (faʻatonuga tuʻu i le LLVM ma i nisi o talosaga Tinygo atonu e vave atu nai lo le gc) ma maeʻa. fesoʻotaʻiga fa'atasi ai ma talosaga uma a le Go.

    O le ese'esega tele mai se tu'ufa'atasi tutusa emgo ose taumafaiga e fa'asao le fa'ata'ita'iga fa'ata'ita'iga muamua a le Go e fa'aaoga ai lapisi ma fa'aoga le LLVM e fa'atupu ai le fa'ailoga lelei nai lo le tu'ufa'atasia i se fa'atusa C. O lo'o ofoina mai fo'i e Tinygo se faletusi ta'avale fou e fa'atino ai se fa'atulagaina, fa'asologa o mea e manatua ai, ma fa'au'u manoa e fa'amalieina mo faiga fa'akomepiuta. O nisi afifi, e pei o le sync ma le atagia, ua toe faia e faavae i luga o le taimi fou.

    Faatasi ai ma suiga i le tatalaina o le 0.7 o le faʻatinoina o le "tinygo test" poloaiga, le tuʻuina atu o lapisi lagolago lagolago mo le tele o laupapa taulaʻi (faʻavae i luga o le ARM Cortex-M) ma WebAssembly, lagolago mo le HiFive1 rev B laupapa faʻavae i luga o le RISC- V fausaga ma le Arduino nano33 laupapa,
    fa'aleleia atili le lagolago i le gagana (lagolago mo fasi fanua e fa'aaoga ai getters ma seti, lagolago mo fausaga e le ta'ua).

    puna: opennet.ru

  • Faaopoopo i ai se faamatalaga