Cheerp 3.0, C/C++ ජාවාස්ක්‍රිප්ට් සම්පාදකයට, Apache 2.0 සහ LLVM බලපත්‍ර වෙත සංක්‍රමණය විය

Cheerp 3.0 සම්පාදකය හඳුන්වා දී ඇත, ඔබට ඕනෑම C/C++ කේතයක් WebAssembly හෝ JavaScript වෙත සම්පාදනය කිරීමට ඉඩ සලසයි. නව ශාඛාව, කලින් යෙදූ සීමිත බලපත්‍ර ප්‍රතිපත්තිය වෙනුවට, වාණිජ නොවන ව්‍යාපෘති සඳහා GPLv2.0 බලපත්‍ර විකල්පයක් සහ වාණිජ ඒවා සඳහා හිමිකාර බලපත්‍රයක් ලබා දීම සඳහා, අවසර ලත් Apache 2 සහ LLVM බලපත්‍ර භාවිතා කිරීම සඳහා සම්පාදකය සහ ඒ සමඟ ඇති පුස්තකාල ගෙන යාම කැපී පෙනේ. සම්පාදක කේතය LLVM සහ Clang වෙතින් වර්ධනයන් මත පදනම් වන අතර කාර්ය සාධනය වැඩි දියුණු කිරීමට සහ සම්පාදනය කරන ලද ප්‍රතිඵලයේ ප්‍රමාණය අඩු කිරීමට අමතර ප්‍රශස්තිකරණයන් ඇතුළත් වේ.

Cheerp දැනට පවතින C/C++ පුස්තකාල සහ යෙදුම් බ්‍රවුසරයේ ක්‍රියාත්මක කිරීම සඳහා සහ මුල සිට ඉහළ කාර්යසාධනයක් සහිත වෙබ් යෙදුම් සහ WebAssembly සංරචක නිර්මාණය කිරීම සඳහා යන දෙකම භාවිතා කළ හැක. මෙම ව්‍යාපෘතිය මඟින් ඔබට C/C++ සහ JavaScript හි කේත එක් වෙබ් යෙදුමක් තුළ ඒකාබද්ධ කිරීමට ඉඩ සලසයි, JavaScript කේතයේ සිට C/C++ හි මුලින් සංවර්ධනය කරන ලද කාර්යයන් වෙත ප්‍රවේශ වීමේ හැකියාව සහ C/C++ කේතයේ සිට JavaScript වස්තු, JavaScript පුස්තකාල, Web API සහ සියලුම විශේෂාංග DOM. ඒකාබද්ධ එකලස් කිරීම්, ජාවාස්ක්‍රිප්ට් වෙත සම්පාදනය කර ඇති කේතයේ කොටසක් සහ වෙබ් එකලස් කිරීම සෑදිය හැකිය. එය libc සහ libc++ සම්මත පුස්තකාල භාවිතා කරන ගොඩනැගිලි ව්‍යාපෘති සඳහා සහය දක්වයි.

Emscripten සම්පාදකය හා සසඳන විට, Cheerp වඩාත් ප්‍රශස්ත සහ සංයුක්ත WebAssembly අතරමැදි කේතය (සාමාන්‍ය 7% කුඩා ප්‍රතිඵල සහිත ගොනු) ජනනය කරයි. සංකල්පමය වශයෙන්, වෙනස්කම් නම්, WebAssembly වස්තු ආකෘතියක් ලෙස Emscripten භාවිතා වන අතර WebAssembly පශ්චාත් සැකසුම් අදියරේදී (wasm-opt) සම්බන්ධ කිරීම සහ ප්‍රශස්තිකරණය සිදු කරයි. Cheerp පුස්තකාල සහ වස්තු ගොනු සඳහා අතරමැදි නිරූපණයක් ලෙස LLVM බයිට්කේත භාවිතා කරයි, සම්පූර්ණ ව්‍යාපෘතිය පුරා විහිදෙන පුළුල් ප්‍රශස්තිකරණයන් සඳහා ඉඩ ලබා දෙන අතර පසු-සැකසුම් කිරීමේ අවශ්‍යතාවයකින් තොරව LLVM මට්ටමේ පාර-දත්ත උත්තේජනය කරයි.

මීට අමතරව, Cheerp PreExecuter optimizer භාවිතා කරයි, එය සම්පාදනය කිරීමේ අදියරේදී කේතය පූර්වයෙන් ක්‍රියාත්මක කිරීම සහතික කරයි, උදාහරණයක් ලෙස, ගෝලීය වස්තු ආරම්භ කිරීමට භාවිතා කරන ඉදිකිරීම්කරුවන් නියත බවට පරිවර්තනය කිරීමට. එසේම, සම්පාදනය කිරීමේදී, PartialExecuter භාවිතා කරනු ලැබේ, එය ක්‍රියාකාරී පරාමිති විශ්ලේෂණය මත පදනම්ව, ක්‍රියාත්මක කිරීමේදී භාවිතා නොකරන බවට සහතික වන කේතය ඉවත් කරයි.

කුණු එකතු කරන්නා විසින් ආවරණය කරන ලද මතකය ගතිකව හැසිරවීමට Cheer හට JavaScript කේතය ජනනය කළ හැක. විශේෂයෙන්ම, ටයිප් කළ අරා භාවිතයෙන් සම්ප්‍රදායික ලිපින අවකාශයක් අනුකරණය කිරීම වෙනුවට, Cheerp විසින් JavaScript වස්තු වෙත C++ වස්තු සෘජුවම සිතියම්ගත කිරීම සපයයි, එය JavaScript කසළ එකතු කරන්නාට භාවිතයට නොගත් වස්තූන් ඉවත් කිරීමට හැකියාව ඇති බැවින් මතක පරිභෝජනය අඩු කරයි. කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා, ජනනය කරන ලද WebAssembly අතරමැදි කේතය දත්ත මෙහෙයුම් සමාන්තරකරණයට ඉඩ සලසන SIMD දිගු භාවිතා කරයි.

C++ හි ඒකාබද්ධ සේවාදායක/සේවාදායක වෙබ් යෙදුම් නිර්මාණය කිරීමේ වේදිකාවක් ලෙස Cheerp භාවිතා කළ හැක. වර්තමාන භාවිතයේදී, JavaScript වලින් ලියා ඇති වෙනම බ්‍රවුසරයේ ඉදිරිපස අන්තයක් සහ PHP, Python, Ruby, හෝ JavaScript/Node.js වලින් ලියා ඇති වෙනම පසුපස අන්තයක් සංවර්ධනය කිරීම සාමාන්‍ය දෙයකි. C++ හි සම්පූර්ණ වෙබ් යෙදුම් නිර්මාණය කිරීම සඳහා Cheerp මෙවලම් සපයයි, එහි පසුබිම සහ ඉදිරිපස තනි කේත පදනමක් තුළ සහය දක්වයි. සම්පාදන ක්‍රියාවලියේදී, සේවාදායකයේ පැත්ත ස්වදේශීය කේතයක් බවට සම්පාදනය කරනු ලබන අතර, අතුරු මුහුණත JavaScript නියෝජනයක් බවට පරිවර්තනය වේ. ජාවාස්ක්‍රිප්ට් බවට පරිවර්තනය කරන ලද ඒවා ඇතුළුව සියලුම ව්‍යාපෘති සංරචක නිදොස් කිරීම, මූලාශ්‍ර සිතියම් තාක්‍ෂණය භාවිතයෙන් C++ හි මූලාශ්‍ර පාඨ භාවිතයෙන් සිදු කෙරේ (දෝෂයක් සිදුවුවහොත්, ඔබට C++ කේතයේ කොටසක් දැකිය හැකිය; එය C++ කේතයේ සහ රේඛාවෙන් බිඳීම් ස්ථාන සැකසීමට සහාය වේ. C++ කේතයේ පේළිය පියවරෙන් පියවර ක්‍රියාත්මක කිරීම ).

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න