C/C++ இலிருந்து WebAssembly மற்றும் JavaScript வரை திறந்த மூல கம்பைலரை உற்சாகப்படுத்தவும்

உற்சாகம்

சீர்ப்: இணையத்திற்கான சி++ கம்பைலர்

இது சமீபத்தில் அறிவிக்கப்பட்டது சீர்ப் 3.0 வெளியீடு, ஒரு தொகுப்பி என்று எந்தவொரு C/C++ குறியீட்டையும் WebAssembly அல்லது JavaScript இல் தொகுக்க உங்களை அனுமதிக்கிறது. புதிய கிளையானது, முன்னர் பயன்படுத்தப்பட்ட வரையறுக்கப்பட்ட உரிமக் கொள்கைக்குப் பதிலாக, கம்பைலர் மற்றும் அதனுடன் இணைந்த நூலகங்களை அனுமதியளிக்கும் Apache 2.0 மற்றும் LLVM உரிமங்களைப் பயன்படுத்துவதில் குறிப்பிடத்தக்கது, இது வணிக ரீதியான திட்டங்களுக்கு GPLv2 உரிம விருப்பத்தையும் வணிகத் திட்டங்களுக்கான உரிம உரிமையாளரையும் வழங்குகிறது.

ஏற்கனவே உள்ள C/C++ பயன்பாடுகள் மற்றும் லைப்ரரிகளை உலாவியில் இயக்குவதற்கு அல்லது புதிதாக அதிக செயல்திறன் கொண்ட இணைய பயன்பாடுகள் மற்றும் WebAssembly கூறுகளை உருவாக்க Cheerp பயன்படுத்தப்படலாம்.

Cheerp ( Cheerp 2.7 ) இன் முந்தைய வெளியீட்டில் இருந்து ஒரு வருடத்திற்கும் மேலாகிவிட்டது, மேலும் இந்த புதிய பதிப்பு புதிய அம்சங்கள் மற்றும் மேம்படுத்தல்களுடன் நிரம்பியுள்ளது, இது மீண்டும் ஒரு முறை, C++ ஐ வலை பயன்பாடுகளுக்கான நிரலாக்க மொழியாகப் பயன்படுத்தும் கலையின் நிலையை நகர்த்துகிறது. விளையாட்டுகள்.

மிக முக்கியமாக, இந்த வெளியீட்டின் மூலம் Cheerp இன் உரிம மாதிரியில் குறிப்பிடத்தக்க மாற்றத்தை நாங்கள் செய்கிறோம். Cheerp 3.0 இன் படி, அனைத்து முக்கிய கம்பைலர் கூறுகள் மற்றும் நூலகங்கள் இப்போது Apache 2.0/LLVM உரிமத்தின் கீழ் அனுமதிக்கப்படும். இது எங்களின் முந்தைய GPLv2/இரட்டை வணிக உரிம மாதிரியிலிருந்து தீவிரமான விலகலைக் குறிக்கிறது, இதனால் Cheerp 3.0ஐ எந்த நோக்கத்திற்காகவும் கட்டுப்பாடு இல்லாமல் பயன்படுத்த அனுமதிக்கிறது.

சீர்ப் பற்றி

திட்டம் வலைப் பயன்பாட்டில் C/C++ குறியீடு மற்றும் JavaScript ஆகியவற்றை இணைக்க உங்களை அனுமதிக்கிறது முதலில் C/C++ இல் உருவாக்கப்பட்ட செயல்பாடுகளுக்கு JavaScript குறியீட்டிலிருந்து அணுகும் திறனுடன், மற்றும் C/C++ குறியீட்டிலிருந்து JavaScript ஆப்ஜெக்ட்டுகள், JavaScript நூலகங்கள், வலை APIகள் மற்றும் அனைத்து DOM அம்சங்கள், அத்துடன் கலவையான உருவாக்கங்களை உருவாக்க உங்களை அனுமதிக்கிறது. ஜாவாஸ்கிரிப்ட் மற்றும் பகுதிகளை WebAssemblyக்கு தொகுக்கும் குறியீடு. நிலையான libc மற்றும் libc++ நூலகங்களைப் பயன்படுத்தும் உருவாக்கத் திட்டங்களை ஆதரிக்கிறது.

Emscripten compiler, Cheerp உடன் ஒப்பிடும்போது மேலும் உகந்த மற்றும் சுருக்கமான WebAssembly இடைநிலை குறியீட்டை உருவாக்குகிறது (சராசரியாக, கோப்பு அளவுகள் 7% சிறியதாக இருக்கும்.)

கருத்துரீதியாக, வேறுபாடுகள் உண்மையில் கொதிக்கின்றன எம்ஸ்கிரிப்டன் WebAssembly இன் பொருள் வடிவமாகப் பயன்படுத்தப்படுகிறது மற்றும் பிந்தைய செயலாக்க கட்டத்தில் பிணைப்பு மற்றும் மேம்படுத்தல் செய்கிறது webassembly (wasm-opt). Cheerp ஆனது LLVM பைட்கோடை நூலகங்கள் மற்றும் பொருள் கோப்புகளுக்கான இடைநிலைப் பிரதிநிதித்துவமாகப் பயன்படுத்துகிறது, பிந்தைய செயலாக்கத்தின் தேவையின்றி LLVM-நிலை மெட்டாடேட்டாவைப் பயன்படுத்தி பரந்த திட்ட அளவிலான மேம்படுத்தல்களை அனுமதிக்கிறது.

தொடர்புடைய கட்டுரை:
எம்ஸ்கிரிப்டன் 3.0, LLVM ஐப் பயன்படுத்தி WebAssemblyக்கான உருவாக்க கருவித்தொகுப்பு

கூடுதலாக, சீர்ப், குறியீட்டை முன்கூட்டியே செயல்படுத்த, PreExecuter ஆப்டிமைசரைப் பயன்படுத்துகிறது தொகுக்கும் நேரத்தில், எடுத்துக்காட்டாக, உலகளாவிய பொருள்களை மாறிலிகளுக்கு துவக்குவதற்குப் பயன்படுத்தப்படும் கட்டமைப்பாளர்களை மாற்றுவதற்கு. கூடுதலாக, PartialExecuter தொகுப்பின் போது பயன்படுத்தப்படுகிறது, இது செயல்பாட்டின் அளவுருக்களை பாகுபடுத்துவதன் அடிப்படையில், செயல்பாட்டின் போது பயன்படுத்தப்படாது என்று உத்தரவாதம் அளிக்கப்பட்ட குறியீட்டை நீக்குகிறது.

Cheerp நினைவகத்துடன் மாறும் வகையில் செயல்பட JavaScript குறியீட்டை உருவாக்க முடியும். குப்பை சேகரிப்பாளரால் மூடப்பட்டது. குறிப்பாக, தட்டச்சு செய்யப்பட்ட வரிசைகளுடன் பாரம்பரிய முகவரி இடத்தைப் பின்பற்றுவதற்குப் பதிலாக, Cheerp ஆனது C++ பொருட்களிலிருந்து JavaScript பொருள்களுக்கு நேரடி மேப்பிங்கை வழங்குகிறது, இது நினைவக நுகர்வைக் குறைக்கிறது, ஏனெனில் JavaScript குப்பை சேகரிப்பான் பயன்படுத்தப்படாத பொருட்களை அகற்றும் திறனைக் கொண்டுள்ளது. செயல்திறனை மேம்படுத்த, உருவாக்கப்பட்ட WebAssembly இடைநிலைக் குறியீடு, தரவுச் செயல்பாடுகளின் இணையாகத் திட்டமிட SIMD நீட்டிப்புகளைப் பயன்படுத்துகிறது.

உட்பொதிக்கப்பட்ட வலை பயன்பாடுகளை உருவாக்க Cheerp ஒரு தளமாக பயன்படுத்தப்படலாம் C++ இல் கிளையன்ட்/சர்வர். தற்போதைய நடைமுறையில், ஜாவாஸ்கிரிப்ட்டில் எழுதப்பட்ட ஒரு தனி உலாவி அடிப்படையிலான முன்-இறுதி மற்றும் PHP, பைதான், ரூபி அல்லது JavaScript/Node.js இல் எழுதப்பட்ட ஒரு தனி பின்-இறுதியை உருவாக்குவது பொதுவானது.

ஒரே குறியீடு அடிப்படையில் பின்தளம் மற்றும் முன்பக்கம் இரண்டையும் ஆதரிக்கும் முழுமையான C++ வலைப் பயன்பாடுகளை உருவாக்க Cheerp வழிவகை செய்கிறது.

உருவாக்க செயல்பாட்டின் போது, ​​சேவையக பக்கமானது சொந்த குறியீட்டிற்கு தொகுக்கப்படுகிறது, மேலும் இடைமுகம் ஜாவாஸ்கிரிப்ட் பிரதிநிதித்துவமாக மாற்றப்படுகிறது. JavaScriptக்கு மாற்றப்பட்டவை உட்பட அனைத்து திட்ட கூறுகளின் பிழைத்திருத்தம், மூல வரைபட தொழில்நுட்பத்தைப் பயன்படுத்தி C++ மூல உரைகளைப் பயன்படுத்தி மேற்கொள்ளப்படுகிறது.

இறுதியாக, நீங்கள் அதைப் பற்றி மேலும் அறிய ஆர்வமாக இருந்தால், நீங்கள் விவரங்களை சரிபார்க்கலாம் பின்வரும் இணைப்பு.

கம்பைலர் குறியீடு LLVM மற்றும் Clang மேம்பாடுகளை அடிப்படையாகக் கொண்டது மற்றும் செயல்திறனை மேம்படுத்துவதற்கும் தொகுக்கப்பட்ட வெளியீட்டின் அளவைக் குறைப்பதற்கும் கூடுதல் மேம்படுத்தல்களை உள்ளடக்கியது.


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுகளுக்குப் பொறுப்பு: AB இன்டர்நெட் நெட்வொர்க்ஸ் 2008 SL
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.