C/C++ થી WebAssembly અને JavaScript સુધીના ઓપન સોર્સ કમ્પાઈલરને ખુશ કરો

ખુશખુશાલ

ચીરપ: વેબ માટે C++ કમ્પાઇલર

તાજેતરમાં તેની જાહેરાત કરવામાં આવી હતી ખુશખુશાલ 3.0 રિલીઝ, એક કમ્પાઇલર કે તમને વેબ એસેમ્બલી અથવા જાવાસ્ક્રિપ્ટમાં કોઈપણ C/C++ કોડ કમ્પાઇલ કરવાની મંજૂરી આપે છે. નવી શાખા કમ્પાઇલર અને તેની સાથેની લાઇબ્રેરીઓને અનુમતિ આપનાર અપાચે 2.0 અને LLVM લાયસન્સનો ઉપયોગ કરવા માટે નોંધપાત્ર છે, અગાઉ લાગુ કરાયેલ મર્યાદિત લાઇસન્સ નીતિને બદલે, જે બિન-વાણિજ્યિક પ્રોજેક્ટ્સ માટે GPLv2 લાયસન્સ વિકલ્પ અને વ્યવસાયિક પ્રોજેક્ટ્સ માટે લાયસન્સ માલિક ઓફર કરે છે.

Cheerp નો ઉપયોગ હાલની C/C++ એપ્લીકેશનો અને લાઈબ્રેરીઓને બ્રાઉઝરમાં ચલાવવા માટે અથવા શરૂઆતથી ઉચ્ચ-પ્રદર્શન વેબ એપ્લીકેશનો અને વેબ એસેમ્બલી ઘટકો બનાવવા માટે બંને માટે કરી શકાય છે.

Cheerp ( Cheerp 2.7 ) ની અગાઉની રજૂઆતને એક વર્ષથી વધુ સમય વીતી ગયો છે, અને આ નવું સંસ્કરણ નવી સુવિધાઓ અને ઑપ્ટિમાઇઝેશનથી ભરેલું છે જે ફરી એકવાર, વેબ એપ્લિકેશન માટે પ્રોગ્રામિંગ ભાષા તરીકે C++ નો ઉપયોગ કરવાની કળાની સ્થિતિને આગળ ધપાવે છે. રમતો

સૌથી અગત્યનું, આ પ્રકાશન સાથે અમે Cheerp ના લાઇસન્સિંગ મોડેલમાં નોંધપાત્ર ફેરફાર કરી રહ્યા છીએ. Cheerp 3.0 મુજબ, બધા કોર કમ્પાઇલર ઘટકો અને લાઇબ્રેરીઓ હવે Apache 2.0/LLVM લાયસન્સ હેઠળ પરવાનગીપૂર્વક લાઇસન્સ પ્રાપ્ત છે. આ અમારા અગાઉના GPLv2/ડ્યુઅલ કોમર્શિયલ લાયસન્સ મોડલમાંથી આમૂલ પ્રસ્થાનને ચિહ્નિત કરે છે, જે Cheerp 3.0 ને કોઈપણ હેતુ માટે, પ્રતિબંધ વિના ઉપયોગમાં લેવાની મંજૂરી આપે છે.

ચીર્પ વિશે

આ પ્રોજેક્ટ તમને વેબ એપ્લિકેશનમાં C/C++ કોડ અને JavaScript ને જોડવાની મંજૂરી આપે છે JavaScript કોડથી C/C++ માં મૂળ રીતે વિકસિત કાર્યો અને C/C++ કોડથી JavaScript ઑબ્જેક્ટ્સ, JavaScript લાઇબ્રેરીઓ, વેબ API અને તમામ DOM સુવિધાઓને ઍક્સેસ કરવાની ક્ષમતા સાથે, તેમજ તમને મિશ્ર બિલ્ડ્સ બનાવવાની મંજૂરી આપે છે, જેનો એક ભાગ કોડ જે JavaScript અને ભાગો WebAssembly માં કમ્પાઇલ કરે છે. સ્ટાન્ડર્ડ libc અને libc++ લાઇબ્રેરીઓનો ઉપયોગ કરતા પ્રોજેક્ટ બિલ્ડને સપોર્ટ કરે છે.

Emscripten કમ્પાઇલરની સરખામણીમાં, Cheerp વધુ ઑપ્ટિમાઇઝ અને કોમ્પેક્ટ વેબ એસેમ્બલી ઇન્ટરમીડિયેટ કોડ જનરેટ કરે છે (સરેરાશ, પરિણામી ફાઇલનું કદ 7% નાનું છે.)

સૈદ્ધાંતિક રીતે, તફાવતો એ હકીકત તરફ ઉકળે છે કે એમસ્ક્રીપ્ટન WebAssembly ના ઑબ્જેક્ટ ફોર્મેટ તરીકે ઉપયોગમાં લેવાય છે અને પોસ્ટ-પ્રોસેસિંગ તબક્કામાં બંધનકર્તા અને ઑપ્ટિમાઇઝેશન કરે છે વેબઅસ્બાન (wasm-opt). ચીરપ લાયબ્રેરીઓ અને ઑબ્જેક્ટ ફાઇલો માટે મધ્યવર્તી રજૂઆત તરીકે LLVM બાઇટકોડનો ઉપયોગ કરે છે, જે પોસ્ટ-પ્રોસેસિંગની જરૂરિયાત વિના LLVM-સ્તરના મેટાડેટાનો ઉપયોગ કરીને વ્યાપક પ્રોજેક્ટ-વ્યાપી ઑપ્ટિમાઇઝેશન માટે પરવાનગી આપે છે.

સંબંધિત લેખ:
Emscripten 3.0, LLVM નો ઉપયોગ કરીને વેબ એસેમ્બલી માટે બિલ્ડ ટૂલચેન

ઉપરાંત, Cheerp preExecuter optimizer નો ઉપયોગ આગોતરી રીતે કોડનો અમલ કરવા માટે કરે છે કમ્પાઇલ સમયે, ઉદાહરણ તરીકે, વૈશ્વિક ઑબ્જેક્ટ્સને સ્થિરાંકમાં પ્રારંભ કરવા માટે ઉપયોગમાં લેવાતા કન્સ્ટ્રક્ટરને કન્વર્ટ કરવા માટે. વધુમાં, PartialExecuter નો ઉપયોગ કમ્પાઇલેશન દરમિયાન થાય છે, જે ફંક્શનના પરિમાણોને પાર્સ કરવાના આધારે, એક્ઝેક્યુશન વખતે ઉપયોગમાં ન લેવાની ખાતરી આપતા કોડને દૂર કરે છે.

ચેરપ મેમરી સાથે ગતિશીલ રીતે કામ કરવા માટે JavaScript કોડ પણ જનરેટ કરી શકે છે. કચરો કલેક્ટર દ્વારા આવરી લેવામાં આવે છે. ખાસ કરીને, ટાઇપ કરેલ એરે સાથે પરંપરાગત સરનામાંની જગ્યાનું અનુકરણ કરવાને બદલે, Cheerp C++ ઑબ્જેક્ટ્સમાંથી JavaScript ઑબ્જેક્ટ્સ પર ડાયરેક્ટ મેપિંગ પૂરું પાડે છે, જે મેમરી વપરાશ ઘટાડે છે કારણ કે JavaScript ગાર્બેજ કલેક્ટર પાસે ન વપરાયેલ ઑબ્જેક્ટ્સને દૂર કરવાની ક્ષમતા છે. કામગીરી બહેતર બનાવવા માટે, જનરેટ કરેલ WebAssembly ઇન્ટરમીડિયેટ કોડ SIMD એક્સ્ટેંશનનો ઉપયોગ ડેટા કામગીરીના સમાંતરને ગોઠવવા માટે કરે છે.

એમ્બેડેડ વેબ એપ્લીકેશન બનાવવા માટે ચીઅરનો ઉપયોગ પ્લેટફોર્મ તરીકે થઈ શકે છે C++ માં ક્લાયંટ/સર્વર. વર્તમાન વ્યવહારમાં, JavaScript માં લખાયેલ અલગ બ્રાઉઝર-આધારિત ફ્રન્ટ-એન્ડ અને PHP, Python, Ruby, અથવા JavaScript/Node.js માં લખાયેલ એક અલગ બેક-એન્ડ વિકસાવવાનું સામાન્ય છે.

Cheerp સંપૂર્ણ C++ વેબ એપ્લીકેશન બનાવવાનું સાધન પૂરું પાડે છે જે એક કોડ બેઝમાં બેકએન્ડ અને ફ્રન્ટએન્ડ બંનેને સપોર્ટ કરે છે.

બિલ્ડ પ્રક્રિયા દરમિયાન, સર્વર-સાઇડ નેટીવ કોડમાં કમ્પાઇલ કરવામાં આવે છે, અને ઇન્ટરફેસને JavaScript રજૂઆતમાં રૂપાંતરિત કરવામાં આવે છે. જાવાસ્ક્રિપ્ટમાં રૂપાંતરિત કરાયેલા સહિત તમામ પ્રોજેક્ટ ઘટકોનું ડીબગીંગ, સ્ત્રોત નકશા તકનીકનો ઉપયોગ કરીને C++ સ્ત્રોત ટેક્સ્ટનો ઉપયોગ કરીને હાથ ધરવામાં આવે છે.

છેલ્લે, જો તમને તેના વિશે વધુ જાણવામાં રસ છે, તમે માં વિગતો ચકાસી શકો છો નીચેની કડી

કમ્પાઇલર કોડ એલએલવીએમ અને ક્લેંગ ડેવલપમેન્ટ પર આધારિત છે અને તેમાં પ્રદર્શન સુધારવા અને કમ્પાઇલ આઉટપુટનું કદ ઘટાડવા માટે વધારાના ઑપ્ટિમાઇઝેશનનો સમાવેશ થાય છે.


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: AB ઈન્ટરનેટ નેટવર્ક્સ 2008 SL
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.