Itusilẹ ti Tinygo 0.7.0, LLVM-orisun Go alakojo

Wa idasilẹ ise agbese Tinygo 0.7.0, eyi ti o n ṣe idagbasoke olupilẹṣẹ ede Go fun awọn agbegbe ti o nilo aṣoju iwapọ ti koodu abajade ati lilo awọn ohun elo kekere, gẹgẹbi awọn microcontrollers ati awọn ọna ẹrọ isise-ọkan. Koodu pin nipasẹ labẹ iwe-aṣẹ BSD.

Iṣakojọpọ fun awọn iru ẹrọ ibi-afẹde ni a ṣe ni lilo LLVM, ati awọn ile-ikawe ti a lo ninu ohun elo irinṣẹ akọkọ lati iṣẹ akanṣe Go ni a lo lati ṣe atilẹyin ede naa. Eto ti a ṣajọpọ le ṣee ṣiṣẹ taara lori awọn oludari microcontroller, gbigba Go lati lo bi ede fun kikọ awọn iwe afọwọkọ adaṣe.

Iwuri fun ṣiṣẹda iṣẹ akanṣe tuntun ni ifẹ lati lo ede Go ti o faramọ lori awọn ẹrọ iwapọ - awọn olupilẹṣẹ pinnu pe ti ẹya Python kan wa fun awọn oluṣakoso microcontroller, lẹhinna kilode ti o ko ṣẹda iru kan fun ede Go. Lọ ti yan dipo Ipata nitori pe o rọrun lati kọ ẹkọ, pese atilẹyin olominira o tẹle ara fun isọdọkan ti o da lori coroutine, ati pe o funni ni ile-ikawe boṣewa lọpọlọpọ (“awọn batiri to wa”).

Ni fọọmu lọwọlọwọ rẹ, awọn awoṣe microcontroller 15 ni atilẹyin, pẹlu ọpọlọpọ awọn igbimọ lati Adafruit, Arduino, BBC micro: bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ati Phytec. Awọn eto tun le ṣe akojọpọ lati ṣiṣẹ ni ẹrọ aṣawakiri kan ni ọna kika WebAssembly ati bi awọn faili ṣiṣe fun Lainos. Ṣe atilẹyin awọn olutona ESP8266/ESP32 Ko sibẹsibẹ, ṣugbọn iṣẹ akanṣe lọtọ ti wa ni idagbasoke lati ṣafikun atilẹyin fun chirún Xtensa ni LLVM, eyiti o tun samisi bi riru ati pe ko ṣetan fun iṣọpọ pẹlu TinyGo.

Awọn ibi-afẹde pataki ti iṣẹ akanṣe:

  • Ipilẹṣẹ ti awọn faili ipaniyan iwapọ pupọ;
  • Atilẹyin fun awọn awoṣe ti o wọpọ julọ ti awọn igbimọ microcontroller;
  • O ṣeeṣe ti ohun elo fun oju opo wẹẹbu;
  • Atilẹyin CGo pẹlu iwọn kekere nigbati o n pe awọn iṣẹ ni C;
  • Atilẹyin fun pupọ julọ awọn idii boṣewa ati agbara lati ṣajọ koodu jeneriki ti o wa laisi iyipada rẹ.

    Atilẹyin fun awọn ọna ṣiṣe-pupọ kii ṣe laarin awọn ibi-afẹde akọkọ,
    Ifilọlẹ daradara ti nọmba nla ti awọn coroutines (ifilọlẹ ti awọn coroutines funrararẹ ni atilẹyin ni kikun), aṣeyọri ti ipele iṣẹ ti olupilẹṣẹ itọkasi gc (iṣapeye ti fi silẹ si LLVM ati ni diẹ ninu awọn ohun elo Tinygo le yiyara ju gc) ati pari ibamu pẹlu gbogbo awọn ohun elo Go.

    Iyatọ akọkọ lati akopọ iru kan emgo jẹ igbiyanju lati tọju awoṣe iṣakoso iranti atilẹba ti Go ni lilo ikojọpọ idoti ati lo LLVM lati ṣe agbekalẹ koodu to munadoko dipo kikojọ rẹ si aṣoju C kan. Tinygo tun nfunni ni ile-ikawe asiko asiko tuntun ti o ṣe imuse oluṣeto, eto ipin iranti, ati awọn oluṣakoso okun iṣapeye fun awọn ọna ṣiṣe iwapọ. Diẹ ninu awọn idii, gẹgẹbi imuṣiṣẹpọ ati afihan, ti jẹ atunda da lori akoko ṣiṣe tuntun.

    Lara awọn ayipada ninu itusilẹ 0.7 ni imuse ti aṣẹ “idanwo tinygo”, ipese atilẹyin gbigba idoti fun ọpọlọpọ awọn igbimọ ibi-afẹde (da lori ARM Cortex-M) ati WebAssembly, atilẹyin fun igbimọ HiFive1 rev B ti o da lori RISC- V faaji ati igbimọ Arduino nano33,
    atilẹyin ede ti o ni ilọsiwaju (atilẹyin fun awọn aaye bit nipa lilo awọn getters ati awọn oluṣeto, atilẹyin fun awọn ẹya ailorukọ).

    orisun: opennet.ru

  • Fi ọrọìwòye kun