Tinygo 0.7.0, LLVM- அடிப்படையிலான Go கம்பைலர் வெளியீடு

கிடைக்கும் திட்ட வெளியீடு டைனிகோ 0.7.0, இது மைக்ரோகண்ட்ரோலர்கள் மற்றும் சிறிய ஒற்றை-செயலி அமைப்புகள் போன்ற விளைவான குறியீட்டின் சுருக்கமான பிரதிநிதித்துவம் மற்றும் குறைந்த வள நுகர்வு தேவைப்படும் பகுதிகளுக்கு ஒரு Go மொழி தொகுப்பியை உருவாக்கி வருகிறது. குறியீடு வழங்கியது BSD உரிமத்தின் கீழ்.

பல்வேறு இலக்கு தளங்களுக்கான தொகுப்பு LLVM ஐப் பயன்படுத்தி செயல்படுத்தப்படுகிறது, மேலும் மொழி ஆதரவு முதன்மையாக Go திட்டத்தின் கருவித்தொகுப்பில் பயன்படுத்தப்படும் நூலகங்களால் வழங்கப்படுகிறது. தொகுக்கப்பட்ட நிரல் நேரடியாக மைக்ரோகண்ட்ரோலர்களில் இயங்க முடியும், இதனால் Go ஆட்டோமேஷன் ஸ்கிரிப்ட்களை எழுதுவதற்கான மொழியாகப் பயன்படுத்த அனுமதிக்கிறது.

புதிய திட்டத்தை உருவாக்குவதற்கான உந்துதல், சிறிய சாதனங்களில் பழக்கமான Go மொழியைப் பயன்படுத்த வேண்டும் என்ற விருப்பமாகும் - மைக்ரோகண்ட்ரோலர்களுக்கு பைதான் பதிப்பு இருந்தால், Go மொழிக்கு ஒத்த ஒன்றை ஏன் உருவாக்கக்கூடாது என்று டெவலப்பர்கள் நியாயப்படுத்தினர். தேர்ந்தெடுக்கப்பட்டது கற்றுக்கொள்வது எளிதாக இருப்பதால் ரஸ்டுக்குப் பதிலாக, கோரூட்டீன் அடிப்படையிலான இணைச் செயல்பாட்டிற்கு நூல்-அக்னோஸ்டிக் ஆதரவை வழங்குகிறது, மேலும் ஒரு விரிவான நிலையான நூலகத்தை வழங்குகிறது ("பேட்டரிகள் சேர்க்கப்பட்டுள்ளன").

தற்போது, ​​Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary மற்றும் Phytec ஆகியவற்றின் பல்வேறு பலகைகள் உட்பட 15 மைக்ரோகண்ட்ரோலர் மாதிரிகள் ஆதரிக்கப்படுகின்றன. WebAssembly வடிவத்திலும் Linux இயங்கக்கூடியவையாகவும் உலாவி செயல்படுத்தலுக்காக நிரல்களைத் தொகுக்கலாம். ESP8266/ESP32 கட்டுப்படுத்திகளுக்கான ஆதரவு. இன்னும் இல்லை, ஆனால் Xtensa சிப்பிற்கான ஆதரவை LLVM இல் சேர்க்க ஒரு தனி திட்டம் உருவாக்கப்பட்டு வருகிறது, இது தற்போது நிலையற்றதாகவும் TinyGo உடன் ஒருங்கிணைக்கத் தயாராக இல்லை என்றும் குறிக்கப்பட்டுள்ளது.

முக்கிய திட்ட இலக்குகள்:

  • மிகச் சிறிய இயங்கக்கூடிய கோப்புகளை உருவாக்குதல்;
  • மிகவும் பொதுவான மைக்ரோகண்ட்ரோலர் போர்டு மாதிரிகளுக்கான ஆதரவு;
  • வலைக்குத் தயார்;
  • C செயல்பாடுகளை அழைக்கும்போது குறைந்தபட்ச மேல்நிலைச் செலவுகளுடன் CGo ஆதரவு;
  • பெரும்பாலான நிலையான தொகுப்புகளுக்கான ஆதரவு மற்றும் ஏற்கனவே உள்ள நிலையான குறியீட்டை மாற்றாமல் தொகுக்கும் திறன்.

    மல்டி-கோர் அமைப்புகளுக்கான ஆதரவு முக்கிய இலக்குகளில் ஒன்றல்ல,
    அதிக எண்ணிக்கையிலான கோரூட்டின்களை திறம்பட துவக்குதல் (கோரோட்டின்களை வெளியிடுவதே முழுமையாக ஆதரிக்கப்படுகிறது), குறிப்பு ஜிசி தொகுப்பியின் செயல்திறன் அளவை அடைதல் (உகப்பாக்கம் எல்எல்விஎம்மிற்கு விடப்படுகிறது மற்றும் சில பயன்பாடுகளில் டைனிகோ ஜிசியை விட வேகமாக இருக்கலாம்) மற்றும் முழுமையானது. совместимость அனைத்து Go பயன்பாடுகளுடனும்.

    இதே போன்ற தொகுப்பியிலிருந்து முக்கிய வேறுபாடு எம்கோ கோவின் அசல் குப்பை-சேகரிக்கப்பட்ட நினைவக மேலாண்மை மாதிரியைப் பாதுகாக்க டைனிகோ முயற்சிக்கிறது மற்றும் C பிரதிநிதித்துவத்திற்கு தொகுப்பதற்குப் பதிலாக திறமையான குறியீட்டை உருவாக்க LLVM ஐப் பயன்படுத்துகிறது. டைனிகோ ஒரு புதிய இயக்க நேர நூலகத்தையும் வழங்குகிறது, இது ஒரு திட்டமிடுபவர், நினைவக ஒதுக்கீட்டு அமைப்பு மற்றும் சிறிய அமைப்புகளுக்கு உகந்ததாக இருக்கும் சரம் கையாளுபவர்களை செயல்படுத்துகிறது. ஒத்திசைவு மற்றும் பிரதிபலிப்பு போன்ற பல தொகுப்புகள் புதிய இயக்க நேரத்தைப் பயன்படுத்தி மீண்டும் உருவாக்கப்பட்டுள்ளன.

    வெளியீடு 0.7 இல் உள்ள மாற்றங்களில் "tinygo சோதனை" கட்டளையை செயல்படுத்துதல், பெரும்பாலான இலக்கு பலகைகளுக்கான குப்பை சேகரிப்புக்கான ஆதரவு (ARM Cortex-M அடிப்படையிலானது) மற்றும் WebAssembly, RISC-V கட்டமைப்பை அடிப்படையாகக் கொண்ட HiFive1 rev B பலகைக்கான ஆதரவு மற்றும் Arduino nano33 பலகை ஆகியவை அடங்கும்.
    மேம்படுத்தப்பட்ட மொழி ஆதரவு (கெட்டர்கள் மற்றும் செட்டர்களைப் பயன்படுத்தி பிட் புலங்களுக்கான ஆதரவு, அநாமதேய கட்டமைப்புகளுக்கான ஆதரவு).

    ஆதாரம்: opennet.ru

  • DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster