Emscripten 3.0, LLVM वापरून WebAssembly साठी एक बिल्ड टूलचेन

अलीकडे Emscripten 3.0 कंपाइलरच्या नवीन आवृत्तीचे प्रकाशन घोषित करण्यात आले, ज्याचे वैशिष्ट्य C/C ++ आणि इतर भाषांमध्ये कोड संकलित करण्याची परवानगी देऊन आहे ज्यासाठी LLVM-आधारित फ्रंटएंड्स उपलब्ध आहेत, कमी-स्तरीय युनिव्हर्सल मिडलवेअर वेबअसेंबलीमध्ये.

या संकलनाचे मुख्य कार्य जावास्क्रिप्ट प्रोजेक्ट्ससह त्याचे त्यानंतरचे एकत्रीकरण, वेब ब्राउझरमध्ये चालणारे, नोडमध्ये वापरणे हे आहे. Js किंवा क्रॉस-प्लॅटफॉर्म स्टँडअलोन अॅप्लिकेशन तयार करा जे wasm रनटाइमसह चालतात.

Emscripten बद्दल

मुख्य ध्येय Emscripten प्रकल्पाचा विकास आपल्याला वेबवर कोड चालविण्यास अनुमती देणारे साधन तयार करणे आहे, प्रोग्रामिंग भाषेची पर्वा न करता ज्यामध्ये ते लिहिले आहे.

संकलित केलेले अनुप्रयोग मानक C आणि C ++ लायब्ररी कॉल वापरू शकतात (libc, libcxx), C++ विस्तार, pthreads-आधारित मल्टीथ्रेडिंग, POSIX API, आणि अनेक मल्टीमीडिया लायब्ररी. वेब API आणि JavaScript कोडसह एकत्रीकरणासाठी API स्वतंत्रपणे प्रदान केले आहेत.

साइन अप करा कॅनव्हास द्वारे स्ट्रीमिंग SDL2 लायब्ररी आउटपुटला समर्थन देते, आणि WebGL द्वारे OpenGL आणि EGL समर्थन देखील प्रदान करते, जे तुम्हाला ग्राफिक्स ऍप्लिकेशन्स आणि गेम वेबअसेंबलीमध्ये रूपांतरित करण्याची परवानगी देते.

अक्षरशः कोणताही पोर्टेबल C किंवा C ++ कोड बेस Emscripten वापरून WebAssembly मध्ये संकलित केला जाऊ शकतो.उच्च-कार्यक्षमता गेमपासून ते Qt सारख्या ऍप्लिकेशन फ्रेमवर्कपर्यंत ज्यांना ग्राफिक्स रेंडर करणे, आवाज प्ले करणे आणि फाइल्स लोड करणे आणि प्रक्रिया करणे आवश्यक आहे. अवास्तविक इंजिन 4 आणि युनिटी इंजिन सारख्या व्यावसायिक कोड बेससह, वास्तविक-जागतिक कोड बेसची खूप मोठी यादी वेबअसेंबलीमध्ये रूपांतरित करण्यासाठी Emscripten आधीच वापरली गेली आहे.

C/C ++ कोड संकलित करण्याव्यतिरिक्त, Lua, C#, Python, Ruby आणि Perl साठी दुभाषी आणि आभासी मशीन ब्राउझरमध्ये सुरू होतील याची खात्री करण्यासाठी प्रकल्प स्वतंत्रपणे विकसित केले जातात. स्विफ्ट, रस्ट, डी आणि फोरट्रान सारख्या भाषांसाठी उपलब्ध असलेल्या LLVM वर नॉन-क्लँग इंटरफेस लागू करणे देखील शक्य आहे.

याची नोंद घ्यावी मूळ रनटाइम आणि एम्स्क्रिप्टनमध्ये फरक आहे, याचा अर्थ असा की, सर्वसाधारणपणे, ईनेटिव्ह कोडमध्ये काही बदल करणे आवश्यक आहे. असे म्हटले आहे की, बर्‍याच अनुप्रयोगांना फक्त त्यांचे मुख्य लूप परिभाषित करण्याचा मार्ग बदलण्याची आणि ब्राउझर / JavaScript मर्यादा सामावून घेण्यासाठी त्यांच्या फाइल हाताळणीत बदल करणे आवश्यक आहे.

काही कोड स्थलांतरित करणे सोपे बनवणार्‍या काही मर्यादा देखील आहेत - तुम्हाला अधिक प्रयत्न कुठे करावे लागतील हे निर्धारित करण्यासाठी पोर्टेबिलिटी मार्गदर्शक तत्त्वे वाचा.

Emscripten 3.0 ची मुख्य नवीन वैशिष्ट्ये

सादर केलेल्या या नवीन आवृत्तीमध्ये, emscripten मध्ये वापरलेली musl C लायब्ररी आवृत्ती 1.2.2 मध्ये अद्यतनित केली गेली आहे (आवृत्ती 1.1.15 Emscripten 2.x शाखेत वापरली गेली होती).

parseTools.js लायब्ररीमधून फंक्शन्सचा एक भाग काढून टाकण्यात आला होता, जे मुख्यतः प्रोजेक्टमध्ये वापरले जातात: रिमूव्हपॉइंटिंग, पॉइंटिंग लेव्हल्स, रिमूव्ह ऑलपॉइंटिंग, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, CompileTimeTimeTimeType,ItToHex,CompileTimeTimeType.

तर shell.html आणि shell_minimal.html टेम्पलेट्समध्ये, त्रुटी संदेशांचे आउटपुट जे emscripten ऑपरेशन दरम्यान उद्भवते आणि stderr द्वारे अर्जाद्वारे जारी केले जाते console.error ऐवजी console.warn वापरण्यासाठी ते डीफॉल्टनुसार बदलले आहे.

असेही ठळकपणे समोर आले आहे फाइल नावांमध्ये वापरलेले विशिष्ट मजकूर एन्कोडिंग निर्दिष्ट करण्याची क्षमता जोडली. फाइल नाव पास करताना एन्कोडिंग प्रत्यय म्हणून निर्दिष्ट केले जाऊ शकते, उदाहरणार्थ "a.rsp.utf-8" किंवा "a.rsp.cp1251").

शेवटी, जर तुम्हाला Emscripten बद्दल अधिक जाणून घेण्यात स्वारस्य असेल, तर तुम्ही प्रकल्पाच्या तपशीलांचा सल्ला घेऊ शकता. अधिकृत संकेतस्थळ.

आणि त्याच प्रकारे, आपण Emscripten कसे वापरावे याबद्दल वेबवरील दस्तऐवजांचा सल्ला घेऊ शकता, एक संदर्भ साइट ज्याची आम्ही शिफारस करू शकतो Mozilla विकासक वेबसाइट: https://developer.mozilla.org.

तसेच, हे नमूद करणे महत्त्वाचे आहे की प्रकल्प कोड MIT परवान्याअंतर्गत वितरित केला जातो. कंपाइलर LLVM प्रकल्पातील घडामोडींचा वापर करतो आणि Binaryen लायब्ररीचा उपयोग WebAssembly आणि ऑप्टिमायझेशन तयार करण्यासाठी केला जातो. तुम्ही तुमचा कोड तपासू शकता GitHub वर स्रोत.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.