Ho lokolloa ha Tinygo 0.7.0, e thehiloeng LLVM e thehiloeng compiler

Fumaneha tokollo ya morero Tinygo 0.7.0, e ntseng e etsa motlalehi oa puo ea Go bakeng sa libaka tse hlokang boemeli bo kopanetsoeng ba khoutu e hlahisoang le tšebeliso e tlase ea lisebelisoa, joalo ka li-microcontroller le litsamaiso tsa compact single-processor. Khoutu ajoa ke tlas'a laesense ea BSD.

Ho bokelloa ha liforomo tse fapaneng tse reretsoeng ho kengoa ts'ebetsong ho sebelisoa LLVM, 'me lilaebrari tse sebelisoang ka har'a sephutheloana sa lithulusi tse kholo tsa morero oa Go li sebelisoa ho tšehetsa puo. Lenaneo le hlophisitsoeng le ka tsamaisoa ka kotloloho ho li-microcontroller, ho lumella Go hore e sebelisoe joalo ka puo ea ho ngola mangolo a ikemetseng.

Sepheo sa ho theha morero o mocha e ne e le takatso ea ho sebelisa puo e tloaelehileng ea Go ho lisebelisoa tse kopanetsoeng - bahlahisi ba ile ba beha mabaka a hore haeba ho na le phetolelo ea Python bakeng sa li-microcontrollers, joale ke hobane'ng ha u sa thehe e tšoanang bakeng sa puo ea Go. Eya khethiloe sebakeng sa Rust hobane ho bonolo ho ithuta, e fana ka tšehetso e ikemetseng bakeng sa parallelization e thehiloeng ho coroutine, 'me e fana ka laebrari e pharaletseng e tloaelehileng ("libetri li kenyelelitsoe").

Ka mokhoa oa eona oa hona joale, mefuta e 15 ea li-microcontroller e tšehetsoa, ​​ho kenyelletsa le mapolanka a sa tšoaneng a tsoang Adafruit, Arduino, BBC micro: bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary le Phytec. Mananeo a ka bokelloa ho sebetsa ka sebatli ka sebopeho sa WebAssembly le joalo ka lifaele tse sebetsang bakeng sa Linux. E ts'ehetsa balaoli ba ESP8266/ESP32 Ha e so etsahale, empa morero o fapaneng o ntse o ntlafatsoa ho eketsa tšehetso bakeng sa chip ea Xtensa ho LLVM, e ntseng e tšoauoa e sa tsitsa le hore ha e e-s'o lokele ho kopanngoa le TinyGo.

Lipheo tsa bohlokoa tsa projeke:

  • Ho hlahisa lifaele tse sebetsang hantle haholo;
  • Tšehetso bakeng sa mehlala e tloaelehileng ea mapolanka a microcontroller;
  • Monyetla oa kopo bakeng sa Websaete;
  • Tšehetso ea CGo e nang le li-overhead tse fokolang ha u letsetsa mesebetsi ho C;
  • Tšehetso bakeng sa liphutheloana tse ngata tse tloaelehileng le bokhoni ba ho bokella khoutu e tloaelehileng e teng ntle le ho e fetola.

    Ts'ehetso ea litsamaiso tse ngata tsa mantlha ha se e 'ngoe ea lipheo tsa mantlha,
    ho qalisoa ka katleho ha palo e kholo ea li-coroutines (ho qala ha li-coroutine ka boeona ho tšehetsoa ka botlalo), katleho ea boemo ba ts'ebetso ea gc compiler (optimization e siiloe ho LLVM mme lits'ebetsong tse ling Tinygo e kanna ea potlaka ho feta gc) mme e felile. sebeletsana ka lits'ebetso tsohle tsa Go.

    Phapang e ka sehloohong ho tsoa ho moqapi o tšoanang emgo ke boiteko ba ho boloka mohlala oa pele oa tsamaiso ea memori ea Go o sebelisa pokello ea lithōle le ho sebelisa LLVM ho hlahisa khoutu e sebetsang hantle ho e-na le ho e bokella setšoantšong sa C. Tinygo e boetse e fana ka laeborari e ncha ea nako ea ho sebetsa e sebelisang kemiso, sistimi ea kabo ea memori, le lisebelisoa tsa likhoele tse ntlafalitsoeng bakeng sa litsamaiso tse kopaneng. Liphutheloana tse ling, joalo ka sync le reflect, li entsoe bocha ho latela nako e ncha ea ho sebetsa.

    Har'a liphetoho tsa tokollo ea 0.7 ke ts'ebetsong ea taelo ea "tinygo test", phano ea ts'ehetso ea pokello ea lithōle bakeng sa liboto tse ngata tse shebiloeng (tse thehiloeng ho ARM Cortex-M) le WebAssembly, tšehetso bakeng sa boto ea HiFive1 rev B e thehiloeng ho RISC- V ea kaho le boto ea Arduino nano33,
    tshehetso ya puo e ntlafetseng (tshehetso bakeng sa dibaka tse nyane tse sebedisang di-getter le di-setter, tshehetso ya dibopeho tse sa tsejweng).

    Source: opennet.ru

  • Eketsa ka tlhaloso