ప్రాజెక్ట్ విడుదల , ఇది మైక్రోకంట్రోలర్లు మరియు కాంపాక్ట్ సింగిల్-ప్రాసెసర్ సిస్టమ్ల వంటి ఫలిత కోడ్ మరియు తక్కువ వనరుల వినియోగం యొక్క కాంపాక్ట్ ప్రాతినిధ్యం అవసరమయ్యే ప్రాంతాల కోసం గో లాంగ్వేజ్ కంపైలర్ను అభివృద్ధి చేస్తోంది. కోడ్ BSD లైసెన్స్ కింద.
వివిధ లక్ష్య ప్లాట్ఫారమ్ల కోసం సంకలనం LLVMని ఉపయోగించి అమలు చేయబడుతుంది మరియు గో ప్రాజెక్ట్ నుండి ప్రధాన టూల్కిట్లో ఉపయోగించిన లైబ్రరీలు భాషకు మద్దతు ఇవ్వడానికి ఉపయోగించబడతాయి. కంపైల్ చేయబడిన ప్రోగ్రామ్ నేరుగా మైక్రోకంట్రోలర్లపై అమలు చేయబడుతుంది, ఆటోమేషన్ స్క్రిప్ట్లను వ్రాయడానికి Goని భాషగా ఉపయోగించడానికి అనుమతిస్తుంది.
కొత్త ప్రాజెక్ట్ను రూపొందించడానికి ప్రేరణ కాంపాక్ట్ పరికరాలలో సుపరిచితమైన గో భాషను ఉపయోగించాలనే కోరిక - మైక్రోకంట్రోలర్ల కోసం పైథాన్ వెర్షన్ ఉంటే, గో భాష కోసం ఇలాంటిదాన్ని ఎందుకు సృష్టించకూడదని డెవలపర్లు వాదించారు. వెళ్ళండి రస్ట్కు బదులుగా నేర్చుకోవడం సులభం, కొరూటిన్-ఆధారిత సమాంతరీకరణకు థ్రెడ్-స్వతంత్ర మద్దతును అందిస్తుంది మరియు విస్తృతమైన ప్రామాణిక లైబ్రరీని అందిస్తుంది (“బ్యాటరీలు చేర్చబడ్డాయి”).
В текущем виде поддерживается 15 моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary и Phytec. Программы также могут быть собраны для запуска в браузере в формате WebAssembly и в виде исполняемых файлов для Linux. Поддержки контроллеров ESP8266/ESP32 , కానీ LLVMలో Xtensa చిప్కు మద్దతును జోడించడానికి ఒక ప్రత్యేక ప్రాజెక్ట్ అభివృద్ధి చేయబడుతోంది, ఇది ఇప్పటికీ అస్థిరంగా గుర్తించబడింది మరియు TinyGoతో ఏకీకరణకు సిద్ధంగా లేదు.
ముఖ్య ప్రాజెక్ట్ లక్ష్యాలు:
బహుళ-కోర్ సిస్టమ్లకు మద్దతు ప్రధాన లక్ష్యాలలో లేదు,
భారీ సంఖ్యలో కొరౌటిన్లను సమర్థవంతంగా ప్రయోగించడం (కొరౌటిన్ల ప్రయోగానికి పూర్తి మద్దతు ఉంది), రిఫరెన్స్ కంపైలర్ gc యొక్క పనితీరు స్థాయిని సాధించడం (ఆప్టిమైజేషన్ LLVMకి వదిలివేయబడుతుంది మరియు కొన్ని అప్లికేషన్లలో Tinygo gc కంటే వేగంగా ఉండవచ్చు) మరియు పూర్తి అన్ని Go అప్లికేషన్లతో.
ఇదే కంపైలర్ నుండి ప్రధాన వ్యత్యాసం చెత్త సేకరణను ఉపయోగించి గో యొక్క ఒరిజినల్ మెమరీ మేనేజ్మెంట్ మోడల్ను భద్రపరిచే ప్రయత్నం మరియు LLVMని ఉపయోగించి సమర్థవంతమైన కోడ్ని C ప్రాతినిధ్యానికి కంపైల్ చేయడానికి బదులుగా రూపొందించడం. Tinygo కొత్త రన్టైమ్ లైబ్రరీని కూడా అందిస్తుంది, ఇది షెడ్యూలర్, మెమరీ కేటాయింపు వ్యవస్థ మరియు కాంపాక్ట్ సిస్టమ్ల కోసం ఆప్టిమైజ్ చేయబడిన స్ట్రింగ్ హ్యాండ్లర్లను అమలు చేస్తుంది. సమకాలీకరణ మరియు ప్రతిబింబం వంటి కొన్ని ప్యాకేజీలు కొత్త రన్టైమ్ ఆధారంగా పునఃసృష్టి చేయబడ్డాయి.
విడుదల 0.7లో మార్పులలో “tinygo test” ఆదేశం అమలు చేయడం, చాలా లక్ష్య బోర్డులకు చెత్త సేకరణ మద్దతు (ARM Cortex-M ఆధారంగా) మరియు WebAssembly, RISC- ఆధారంగా HiFive1 rev B బోర్డ్కు మద్దతు ఇవ్వడం. V ఆర్కిటెక్చర్ మరియు Arduino nano33 బోర్డు,
మెరుగైన భాషా మద్దతు (గెట్టర్స్ మరియు సెట్టర్లను ఉపయోగించి బిట్ ఫీల్డ్లకు మద్దతు, అనామక నిర్మాణాలకు మద్దతు).
మూలం: opennet.ru
