Serbestberdana Tinygo 0.7.0, berhevkarê Go-ya-based LLVM

Berdeste serbestberdana projeyê Tinygo 0.7.0, ku berhevkarek zimanê Go-yê ji bo deverên ku pêdivî bi nûnertiya kompakt a koda encam û xerckirina çavkaniyê kêm heye, wek mîkrokontrolker û pergalên yek-prosesorê yên kompakt çêdike. Navê dizî belav kirin ji hêla di bin lîsansa BSD de.

Berhevkirin ji bo platformên cihêreng ên armancê bi karanîna LLVM-ê tête bicîh kirin, û pirtûkxaneyên ku di amûra sereke ya projeya Go de têne bikar anîn ji bo piştgirîkirina ziman têne bikar anîn. Bernameya berhevkirî dikare rasterast li ser mîkrokontrolkeran were xebitandin, ku dihêle Go wekî zimanek ji bo nivîsandina nivîsarên otomasyonê were bikar anîn.

Motivasyona afirandina projeyek nû xwestina karanîna zimanê Go-ya naskirî li ser cîhazên kompakt bû - pêşdebiran fikirîn ku heke guhertoyek Python ji bo mîkrokontrolkeran hebe, wê hingê çima ji bo zimanê Go-ê heman rengî çê nakin. Ajotin hilbijartî li şûna Rust ji ber ku fêrbûna wê hêsantir e, ji bo paralelîzasyona-based korutînê piştgirî-serbixwe peyda dike, û pirtûkxaneyek standard a berfireh pêşkêşî dike ("bataryayên tê de hene").

Di forma xweya heyî de, 15 modelên mîkrokontroller têne piştgirî kirin, di nav de panelên cihêreng ên ji Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary û Phytec. Di heman demê de bername dikarin bêne berhev kirin ku di gerokek bi formata WebAssembly û wekî pelên îcrakar ji bo Linux-ê werin xebitandin. Kontrolkerên ESP8266/ESP32 piştgirî dike Hêşta na, lê projeyek veqetandî tê pêşve xistin da ku piştgirî ji bo çîpa Xtensa di LLVM de zêde bike, ku hîn jî wekî bêîstiqrar tê nîşankirin û ji bo entegrasyonê bi TinyGo re ne amade ye.

Armancên sereke yên projeyê:

  • Hilberîna pelên darvekirî yên pir kompakt;
  • Piştgiriya ji bo modelên herî gelemperî yên panelên mîkrokontroller;
  • Derfeta serîlêdanê ji bo Webê;
  • Piştgiriya CGo bi sermaya hindiktirîn dema ku fonksiyonên di C de bang dikin;
  • Piştgiriya piraniya pakêtên standard û şiyana berhevkirina koda heyî ya standard bêyî guheztina wê.

    Piştgiriya pergalên pir-core ne di nav armancên sereke de ye,
    destpêkirina bikêrhatî ya hejmareke mezin a korûtînan (destpêkirina korûtînan bixwe bi tevahî piştgirî ye), bidestxistina asta performansê ya berhevkarê referansê gc (optimîzasyon ji LLVM re maye û di hin sepanan de dibe ku Tinygo ji gc zûtir be) û temam bibe. lihevhatî bi hemû sepanên Go.

    Cûdahiya sereke ji berhevkarek wekhev emgo hewildanek e ku modela rêveberiya bîranîna orîjînal a Go-yê bi karanîna berhevkirina çopê biparêze û LLVM bikar bîne da ku kodek bikêr çêbike li şûna berhevkirina wê li nûneriyek C. Tinygo di heman demê de pirtûkxaneyek dema xebitandinê ya nû pêşkêşî dike ku nexşerek, pergala veqetandina bîranînê, û rêwerzên rêzê yên ji bo pergalên kompakt xweşbînkirî pêk tîne. Hin pakêt, wekî hevdengkirin û ravekirin, li ser bingeha dema xebitandina nû ji nû ve hatine afirandin.

    Di nav guhertinên di berdana 0.7 de pêkanîna fermana "testa tinygo", peydakirina piştgiriya berhevkirina çopê ji bo piraniya panelên armanc (li ser bingeha ARM Cortex-M) û WebAssembly, piştgirî ji bo panela HiFive1 rev B ya li ser bingeha RISC- Mîmariya V û panela Arduino nano33,
    Piştgiriya zimanî ya pêşkeftî (piştgiriya zeviyên bit bi karanîna getter û setteran, piştgirî ji bo strukturên nenas).

    Source: opennet.ru

  • Add a comment