Tso tawm Tinygo 0.7.0, LLVM-based Go compiler

Muaj qhov project tso tawm Qhov rai 0.7.0, uas tab tom txhim kho Go lus compiler rau cov cheeb tsam uas xav tau kev cog lus sawv cev ntawm cov txiaj ntsig tau txais txiaj ntsig thiab kev siv nyiaj tsawg, xws li microcontrollers thiab compact single-processor systems. Code faib los ntawm raws li BSD daim ntawv tso cai.

Muab tso ua ke rau ntau lub hom phiaj platform yog siv los ntawm LLVM, thiab cov tsev qiv ntawv siv hauv cov cuab yeej tseem ceeb los ntawm Go project yog siv los txhawb cov lus. Cov txheej txheem muab tso ua ke tuaj yeem khiav ncaj qha rau ntawm microcontrollers, tso cai rau Go mus siv los ua hom lus rau kev sau ntawv automation.

Qhov kev txhawb siab rau kev tsim ib txoj haujlwm tshiab yog lub siab xav siv cov lus Go paub ntawm cov khoom siv compact - cov neeg tsim khoom xav tias yog tias muaj Python version rau microcontrollers, yog vim li cas ho tsis tsim ib qho zoo sib xws rau Go language. Mus xaiv es tsis txhob xeb vim nws yooj yim rau kev kawm, muab xov-yooj yim txhawb rau coroutine-based parallelization, thiab muaj cov tsev qiv ntawv dav dav (" roj teeb suav nrog ").

Hauv nws daim ntawv tam sim no, 15 microcontroller qauv tau txais kev txhawb nqa, suav nrog ntau lub rooj tsav xwm los ntawm Adafruit, Arduino, BBC micro: ntsis, ST Micro, Digispark, Nordic Semiconductor, Makerdiary thiab Phytec. Cov kev pab cuam kuj tuaj yeem muab tso ua ke los khiav hauv qhov browser hauv WebAssembly hom ntawv thiab ua cov ntaub ntawv ua tiav rau Linux. Txhawb ESP8266 / ESP32 maub los Tsis tau, tab sis ib txoj haujlwm tshwj xeeb tab tom tsim los ntxiv kev txhawb nqa rau Xtensa nti hauv LLVM, uas tseem raug cim tias tsis ruaj khov thiab tsis npaj rau kev koom ua ke nrog TinyGo.

Lub hom phiaj tseem ceeb ntawm qhov project:

  • Generation ntawm heev compact executable cov ntaub ntawv;
  • Kev them nyiaj yug rau cov qauv feem ntau ntawm microcontroller boards;
  • Muaj peev xwm thov rau Web;
  • Kev them nyiaj yug CGo nrog tsawg nyiaj siv ua haujlwm thaum hu ua haujlwm hauv C;
  • Kev them nyiaj yug rau feem ntau cov txheej txheem pob thiab muaj peev xwm los sau cov txheej txheem uas twb muaj lawm yam tsis hloov nws.

    Kev them nyiaj yug rau ntau lub hauv paus system tsis yog ntawm cov hom phiaj tseem ceeb,
    kev tso tawm tau zoo ntawm ntau tus coroutines (kev tso tawm ntawm coroutines nws tus kheej tau txais kev txhawb nqa tag nrho), kev ua tiav ntawm qib kev ua tau zoo ntawm kev siv compiler gc (kev ua kom zoo yog sab laug rau LLVM thiab hauv qee daim ntawv thov Tinygo yuav nrawm dua gc) thiab ua tiav. kev sib haum xeeb nrog rau txhua daim ntawv thov Go.

    Lub ntsiab sib txawv los ntawm ib tug zoo sib xws compiler ua emgo yog ib qho kev sim khaws Go tus thawj lub cim xeeb kev tswj qauv siv cov khib nyiab sau thiab siv LLVM los tsim kom muaj txiaj ntsig code es tsis txhob muab tso ua ke rau C sawv cev. Tinygo tseem muaj lub tsev qiv ntawv tshiab uas siv lub sijhawm ua haujlwm, lub cim xeeb faib cov kab ke, thiab cov hlua tuav tau zoo rau cov tshuab compact. Qee pob khoom, xws li sync thiab xav txog, tau rov tsim dua raws li lub sijhawm ua haujlwm tshiab.

    Ntawm cov kev hloov pauv hauv kev tso tawm 0.7 yog qhov kev siv ntawm "tinygo test" hais kom ua, muab kev txhawb nqa kev khaws khib nyiab rau feem ntau lub hom phiaj boards (raws li ARM Cortex-M) thiab WebAssembly, kev txhawb nqa rau HiFive1 rev B board raws li RISC- V architecture thiab Arduino nano33 board,
    txhim kho kev txhawb nqa lus (kev txhawb nqa rau me ntsis teb siv getters thiab setters, kev txhawb nqa rau cov qauv tsis qhia npe).

    Tau qhov twg los: opennet.ru

  • Ntxiv ib saib