எம்ஸ்கிரிப்டன் 3.0 கிடைக்கிறது, ஒரு C/C++ to WebAssembly compiler

எம்ஸ்கிரிப்டன் 3.0 கம்பைலரின் வெளியீடு வெளியிடப்பட்டது, இது C/C++ மற்றும் பிற மொழிகளில் குறியீட்டை தொகுக்க உங்களை அனுமதிக்கிறது, அதற்காக LLVM அடிப்படையிலான முன்னோக்குகள் உலகளாவிய குறைந்த-நிலை இடைநிலை குறியீட்டு WebAssembly இல் கிடைக்கின்றன, பின்னர் ஜாவாஸ்கிரிப்ட் திட்டங்களுடன் ஒருங்கிணைக்க, இயங்குகிறது. ஒரு இணைய உலாவியில், மற்றும் Node. js இல் பயன்படுத்தவும் அல்லது Wasm இயக்க நேரத்தைப் பயன்படுத்தி இயங்கும் தனித்த மல்டி-பிளாட்ஃபார்ம் பயன்பாடுகளை உருவாக்கவும். திட்டக் குறியீடு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது. கம்பைலர் எல்எல்விஎம் திட்டத்தில் இருந்து மேம்பாடுகளைப் பயன்படுத்துகிறது, மேலும் பைனரியன் நூலகம் வெப்அசெம்பிளி உருவாக்கம் மற்றும் தேர்வுமுறைக்கு பயன்படுத்தப்படுகிறது.

எம்ஸ்கிரிப்டன் திட்டத்தின் முக்கிய குறிக்கோள், குறியீடு எழுதப்பட்ட நிரலாக்க மொழியைப் பொருட்படுத்தாமல் வலையில் குறியீட்டை இயக்க அனுமதிக்கும் ஒரு கருவியை உருவாக்குவதாகும். தொகுக்கப்பட்ட பயன்பாடுகள் நிலையான C மற்றும் C++ நூலகங்களுக்கான அழைப்புகளைப் பயன்படுத்தலாம் (libc, libcxx), C++ நீட்டிப்புகள், pthreads அடிப்படையிலான மல்டித்ரெடிங், POSIX APIகள் மற்றும் பல மல்டிமீடியா நூலகங்கள். Web API மற்றும் JavaScript குறியீட்டுடன் ஒருங்கிணைப்பதற்கான APIகள் தனித்தனியாக வழங்கப்படுகின்றன.

SDL2 நூலகத்தின் வெளியீட்டை கேன்வாஸ் வழியாக ஒளிபரப்புவதை எம்ஸ்கிரிப்டன் ஆதரிக்கிறது, மேலும் WebGL வழியாக OpenGL மற்றும் EGLக்கான ஆதரவையும் வழங்குகிறது, இது வரைகலை பயன்பாடுகள் மற்றும் கேம்களை WebAssemblyக்கு மாற்ற உங்களை அனுமதிக்கிறது (எடுத்துக்காட்டாக, Qt டூல்கிட்டின் போர்ட் உள்ளது மற்றும் அன்ரியல் என்ஜினை ஆதரிக்கிறது. 4 மற்றும் யூனிட் கேம் என்ஜின்கள், இயற்பியல் புல்லட் எஞ்சின்). C/C++ இல் குறியீட்டைத் தொகுப்பதைத் தவிர, Lua, C#, Python, Ruby மற்றும் Perl ஆகிய மொழிகளுக்கான உலாவிகளில் மொழிபெயர்ப்பாளர்கள் மற்றும் மெய்நிகர் இயந்திரங்களைத் தொடங்குவதை உறுதிசெய்யும் திட்டங்களும் தனித்தனியாக உருவாக்கப்பட்டு வருகின்றன. ஸ்விஃப்ட், ரஸ்ட், டி மற்றும் ஃபோர்ட்ரான் போன்ற மொழிகளுக்குக் கிடைக்கும் எல்.எல்.வி.எம்-க்கு கிளாங் அல்லாத முன்முனைகளைப் பயன்படுத்துவதும் சாத்தியமாகும்.

எம்ஸ்கிரிப்டன் 3.0 இல் முக்கிய மாற்றங்கள்:

  • எம்ஸ்கிரிப்டனில் பயன்படுத்தப்பட்ட musl C நூலகம் பதிப்பு 1.2.2 க்கு புதுப்பிக்கப்பட்டது (பதிப்பு 2 எம்ஸ்கிரிப்டன் 1.1.15.x கிளையில் பயன்படுத்தப்பட்டது).
  • திட்டத்தில் முக்கியமாகப் பயன்படுத்தப்பட்ட செயல்பாடுகளின் ஒரு பகுதி parseTools.js நூலகத்திலிருந்து அகற்றப்பட்டது: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVecturType, getturType, getturType, getturType pePartBits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex , Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • shell.html மற்றும் shell_minimal.html வார்ப்புருக்களில், emscripten இன் செயல்பாட்டின் போது ஏற்படும் பிழை செய்திகளின் வெளியீடு மற்றும் stderr வழியாக பயன்பாட்டினால் வெளியிடப்படும், console.error க்குப் பதிலாக console.warn ஐப் பயன்படுத்த இயல்புநிலையாக மாற்றப்படும்.
  • கோப்பு பெயர்களில் பயன்படுத்தப்படும் ஒரு குறிப்பிட்ட உரை குறியாக்கத்தைக் குறிப்பிடும் திறன் சேர்க்கப்பட்டது. கோப்பின் பெயரைக் கடக்கும் போது குறியாக்கத்தை பின்னொட்டு வடிவத்தில் குறிப்பிடலாம், எடுத்துக்காட்டாக, "a.rsp.utf-8" அல்லது "a.rsp.cp1251").

ஆதாரம்: opennet.ru

கருத்தைச் சேர்