Tinygo 0.7.0 విడుదల, LLVM-ఆధారిత గో కంపైలర్

అందుబాటులో ప్రాజెక్ట్ విడుదల టినిగో 0.7.0, ఇది మైక్రోకంట్రోలర్‌లు మరియు కాంపాక్ట్ సింగిల్-ప్రాసెసర్ సిస్టమ్‌ల వంటి ఫలిత కోడ్ మరియు తక్కువ వనరుల వినియోగం యొక్క కాంపాక్ట్ ప్రాతినిధ్యం అవసరమయ్యే ప్రాంతాల కోసం గో లాంగ్వేజ్ కంపైలర్‌ను అభివృద్ధి చేస్తోంది. కోడ్ ద్వారా పంపిణీ చేయబడింది BSD లైసెన్స్ కింద.

వివిధ లక్ష్య ప్లాట్‌ఫారమ్‌ల కోసం సంకలనం LLVMని ఉపయోగించి అమలు చేయబడుతుంది మరియు గో ప్రాజెక్ట్ నుండి ప్రధాన టూల్‌కిట్‌లో ఉపయోగించిన లైబ్రరీలు భాషకు మద్దతు ఇవ్వడానికి ఉపయోగించబడతాయి. కంపైల్ చేయబడిన ప్రోగ్రామ్ నేరుగా మైక్రోకంట్రోలర్‌లపై అమలు చేయబడుతుంది, ఆటోమేషన్ స్క్రిప్ట్‌లను వ్రాయడానికి Goని భాషగా ఉపయోగించడానికి అనుమతిస్తుంది.

కొత్త ప్రాజెక్ట్‌ను రూపొందించడానికి ప్రేరణ కాంపాక్ట్ పరికరాలలో సుపరిచితమైన గో భాషను ఉపయోగించాలనే కోరిక - మైక్రోకంట్రోలర్‌ల కోసం పైథాన్ వెర్షన్ ఉంటే, గో భాష కోసం ఇలాంటిదాన్ని ఎందుకు సృష్టించకూడదని డెవలపర్‌లు వాదించారు. వెళ్ళండి ఎంపిక చేయబడింది రస్ట్‌కు బదులుగా నేర్చుకోవడం సులభం, కొరూటిన్-ఆధారిత సమాంతరీకరణకు థ్రెడ్-స్వతంత్ర మద్దతును అందిస్తుంది మరియు విస్తృతమైన ప్రామాణిక లైబ్రరీని అందిస్తుంది (“బ్యాటరీలు చేర్చబడ్డాయి”).

ప్రస్తుత రూపంలో, Adafruit, Arduino, BBC మైక్రో:బిట్, ST మైక్రో, డిజిస్పార్క్, నార్డిక్ సెమీకండక్టర్, మేకర్డియరీ మరియు ఫైటెక్ నుండి వివిధ బోర్డులతో సహా 15 మైక్రోకంట్రోలర్ మోడల్‌లకు మద్దతు ఉంది. ప్రోగ్రామ్‌లను వెబ్‌అసెంబ్లీ ఫార్మాట్‌లో బ్రౌజర్‌లో అమలు చేయడానికి మరియు Linux కోసం ఎక్జిక్యూటబుల్ ఫైల్‌లుగా కూడా కంపైల్ చేయవచ్చు. ESP8266/ESP32 కంట్రోలర్‌లకు మద్దతు ఇస్తుంది ఇంకా లేదు, కానీ LLVMలో Xtensa చిప్‌కు మద్దతును జోడించడానికి ఒక ప్రత్యేక ప్రాజెక్ట్ అభివృద్ధి చేయబడుతోంది, ఇది ఇప్పటికీ అస్థిరంగా గుర్తించబడింది మరియు TinyGoతో ఏకీకరణకు సిద్ధంగా లేదు.

ముఖ్య ప్రాజెక్ట్ లక్ష్యాలు:

  • చాలా కాంపాక్ట్ ఎక్జిక్యూటబుల్ ఫైల్స్ జనరేషన్;
  • మైక్రోకంట్రోలర్ బోర్డుల యొక్క అత్యంత సాధారణ నమూనాలకు మద్దతు;
  • వెబ్ కోసం దరఖాస్తు అవకాశం;
  • Cలో ఫంక్షన్‌లను కాల్ చేస్తున్నప్పుడు కనీస ఓవర్‌హెడ్‌తో CGo మద్దతు;
  • చాలా ప్రామాణిక ప్యాకేజీలకు మద్దతు మరియు ఇప్పటికే ఉన్న ప్రామాణిక కోడ్‌ను మార్చకుండా కంపైల్ చేయగల సామర్థ్యం.

    బహుళ-కోర్ సిస్టమ్‌లకు మద్దతు ప్రధాన లక్ష్యాలలో లేదు,
    భారీ సంఖ్యలో కొరౌటిన్‌లను సమర్థవంతంగా ప్రయోగించడం (కొరౌటిన్‌ల ప్రయోగానికి పూర్తి మద్దతు ఉంది), రిఫరెన్స్ కంపైలర్ gc యొక్క పనితీరు స్థాయిని సాధించడం (ఆప్టిమైజేషన్ LLVMకి వదిలివేయబడుతుంది మరియు కొన్ని అప్లికేషన్‌లలో Tinygo gc కంటే వేగంగా ఉండవచ్చు) మరియు పూర్తి అనుకూలత అన్ని Go అప్లికేషన్‌లతో.

    ఇదే కంపైలర్ నుండి ప్రధాన వ్యత్యాసం emgo చెత్త సేకరణను ఉపయోగించి గో యొక్క ఒరిజినల్ మెమరీ మేనేజ్‌మెంట్ మోడల్‌ను భద్రపరిచే ప్రయత్నం మరియు LLVMని ఉపయోగించి సమర్థవంతమైన కోడ్‌ని C ప్రాతినిధ్యానికి కంపైల్ చేయడానికి బదులుగా రూపొందించడం. Tinygo కొత్త రన్‌టైమ్ లైబ్రరీని కూడా అందిస్తుంది, ఇది షెడ్యూలర్, మెమరీ కేటాయింపు వ్యవస్థ మరియు కాంపాక్ట్ సిస్టమ్‌ల కోసం ఆప్టిమైజ్ చేయబడిన స్ట్రింగ్ హ్యాండ్లర్‌లను అమలు చేస్తుంది. సమకాలీకరణ మరియు ప్రతిబింబం వంటి కొన్ని ప్యాకేజీలు కొత్త రన్‌టైమ్ ఆధారంగా పునఃసృష్టి చేయబడ్డాయి.

    విడుదల 0.7లో మార్పులలో “tinygo test” ఆదేశం అమలు చేయడం, చాలా లక్ష్య బోర్డులకు చెత్త సేకరణ మద్దతు (ARM Cortex-M ఆధారంగా) మరియు WebAssembly, RISC- ఆధారంగా HiFive1 rev B బోర్డ్‌కు మద్దతు ఇవ్వడం. V ఆర్కిటెక్చర్ మరియు Arduino nano33 బోర్డు,
    మెరుగైన భాషా మద్దతు (గెట్టర్స్ మరియు సెట్టర్‌లను ఉపయోగించి బిట్ ఫీల్డ్‌లకు మద్దతు, అనామక నిర్మాణాలకు మద్దతు).

    మూలం: opennet.ru

  • ఒక వ్యాఖ్యను జోడించండి