ఎమ్‌స్క్రిప్టెన్ 3.0 అందుబాటులో ఉంది, C/C++ నుండి WebAssembly కంపైలర్

ఎమ్‌స్క్రిప్టెన్ 3.0 కంపైలర్ విడుదల ప్రచురించబడింది, ఇది C/C++ మరియు ఇతర భాషలలో కోడ్‌ను కంపైల్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, దీని కోసం LLVM-ఆధారిత ఫ్రంటెండ్‌లు సార్వత్రిక తక్కువ-స్థాయి ఇంటర్మీడియట్ కోడ్ WebAssemblyలో అందుబాటులో ఉన్నాయి, జావాస్క్రిప్ట్ ప్రాజెక్ట్‌లతో తదుపరి ఏకీకరణ కోసం, నడుస్తున్న వెబ్ బ్రౌజర్‌లో మరియు నోడ్ jsలో ఉపయోగించండి లేదా వాస్మ్ రన్‌టైమ్‌ని ఉపయోగించి అమలు చేసే స్టాండ్-అలోన్ బహుళ-ప్లాట్‌ఫారమ్ అప్లికేషన్‌లను సృష్టించడం. ప్రాజెక్ట్ కోడ్ MIT లైసెన్స్ క్రింద పంపిణీ చేయబడింది. కంపైలర్ LLVM ప్రాజెక్ట్ నుండి అభివృద్ధిని ఉపయోగిస్తుంది మరియు Binaryen లైబ్రరీ WebAssembly జనరేషన్ మరియు ఆప్టిమైజేషన్ కోసం ఉపయోగించబడుతుంది.

కోడ్ వ్రాయబడిన ప్రోగ్రామింగ్ భాషతో సంబంధం లేకుండా వెబ్‌లో కోడ్‌ని అమలు చేయడానికి మిమ్మల్ని అనుమతించే సాధనాన్ని సృష్టించడం ఎమ్‌స్క్రిప్టెన్ ప్రాజెక్ట్ యొక్క ప్రధాన లక్ష్యం. కంపైల్డ్ అప్లికేషన్‌లు ప్రామాణిక C మరియు C++ లైబ్రరీలకు (libc, libcxx), C++ పొడిగింపులు, pthreads-ఆధారిత మల్టీథ్రెడింగ్, POSIX APIలు మరియు అనేక మల్టీమీడియా లైబ్రరీలకు కాల్‌లను ఉపయోగించవచ్చు. వెబ్ API మరియు జావాస్క్రిప్ట్ కోడ్‌తో అనుసంధానం కోసం APIలు విడిగా అందించబడ్డాయి.

కాన్వాస్ ద్వారా SDL2 లైబ్రరీ అవుట్‌పుట్‌ను ప్రసారం చేయడానికి Emscripten మద్దతు ఇస్తుంది మరియు WebGL ద్వారా OpenGL మరియు EGLలకు మద్దతును అందిస్తుంది, ఇది గ్రాఫికల్ అప్లికేషన్‌లు మరియు గేమ్‌లను WebAssemblyకి మార్చడానికి మిమ్మల్ని అనుమతిస్తుంది (ఉదాహరణకు, Qt టూల్‌కిట్ యొక్క పోర్ట్ ఉంది మరియు అన్‌రియల్ ఇంజిన్‌కు మద్దతు ఇస్తుంది 4 మరియు యూనిట్ గేమ్ ఇంజన్లు, భౌతిక బుల్లెట్ ఇంజన్). C/C++లో కోడ్‌ను కంపైల్ చేయడంతో పాటు, Lua, C#, Python, Ruby మరియు Perl భాషల కోసం బ్రౌజర్‌లలో ఇంటర్‌ప్రెటర్‌లు మరియు వర్చువల్ మెషీన్‌లను ప్రారంభించేలా ప్రాజెక్ట్‌లు విడిగా అభివృద్ధి చేయబడుతున్నాయి. స్విఫ్ట్, రస్ట్, డి మరియు ఫోర్ట్రాన్ వంటి భాషలకు అందుబాటులో ఉన్న LLVMకి నాన్-క్లాంగ్ ఫ్రంటెండ్‌లను వర్తింపజేయడం కూడా సాధ్యమే.

ఎమ్‌స్క్రిప్టెన్ 3.0లో ప్రధాన మార్పులు:

  • ఎమ్‌స్క్రిప్టెన్‌లో ఉపయోగించిన musl C లైబ్రరీ వెర్షన్ 1.2.2కి నవీకరించబడింది (వెర్షన్ 2 ఎమ్‌స్క్రిప్టెన్ 1.1.15.x బ్రాంచ్‌లో ఉపయోగించబడింది).
  • ప్రాజెక్ట్‌లో ప్రధానంగా ఉపయోగించిన ఫంక్షన్‌లలో కొంత భాగం parseTools.js లైబ్రరీ నుండి తీసివేయబడింది: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, getturcturucalT, geturType pePartBits, isFunctionDef, isPassiblyFunctionType, 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

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