Yi farin ciki da buɗe tushen mai tarawa daga C/C++ zuwa WebAssembly da JavaScript

fara'a

Cheerp: C++ Compiler don Yanar Gizo

Kwanan nan aka sanar Cheerp 3.0 saki, mai tarawa cewa yana ba ku damar haɗa kowane lambar C/C++ zuwa WebAssembly ko JavaScript. Sabuwar reshe sananne ne don matsar da mai tarawa da ɗakunan karatu masu rakiyar don amfani da lasisin Apache 2.0 da LLVM, maimakon ƙayyadaddun manufofin lasisi da aka yi amfani da su a baya, wanda ke ba da zaɓin lasisin GPLv2 don ayyukan da ba na kasuwanci ba da mai lasisi don ayyukan kasuwanci.

Ana iya amfani da Cheerp duka zuwa tashar jiragen ruwa da aikace-aikacen C/C++ da ke akwai da ɗakunan karatu don aiki a cikin mai bincike, ko ƙirƙirar aikace-aikacen yanar gizo masu inganci da abubuwan haɗin yanar gizon WebAssembly daga karce.

Sama da shekara guda kenan da fitowar Cheerp (Cheerp 2.7) da ta gabata, kuma wannan sabuwar sigar tana cike da sabbin abubuwa da ingantawa wanda, kuma, ke motsa yanayin fasahar amfani da C++ azaman yaren shirye-shirye don aikace-aikacen gidan yanar gizo. wasanni.

Mafi mahimmanci, tare da wannan sakin muna yin gagarumin canji ga ƙirar lasisin Cheerp. Tun daga Cheerp 3.0, duk ainihin abubuwan haɗawa da ɗakunan karatu yanzu suna da lasisin izini ƙarƙashin lasisin Apache 2.0/LLVM. Wannan yana nuna alamar tashi daga GPLv2 na baya/samfurin lasisin kasuwanci guda biyu, yana barin Cheerp 3.0 don amfani da kowane dalili, ba tare da ƙuntatawa ba.

Game da Cheerp

Wannan aikin yana ba ku damar haɗa lambar C/C++ da JavaScript a cikin aikace-aikacen yanar gizo tare da ikon samun dama daga lambar JavaScript zuwa ayyukan da aka samo asali a cikin C/C++, kuma daga lambar C/C++ zuwa abubuwan JavaScript, dakunan karatu na JavaScript, APIs na Yanar Gizo, da duk fasalulluka na DOM, da kuma ba ku damar ƙirƙirar ginin gauraye, wani ɓangare na lambar da ke tattarawa zuwa JavaScript da sassan zuwa Gidan Yanar Gizo. Yana goyan bayan gina ayyukan da ke amfani da madaidaitan libc da ɗakunan karatu na libc++.

Idan aka kwatanta da mai tara Emscripten, Cheerp yana haifar da ƙarin ingantattu da ƙaƙƙarfan lambar tsaka-tsakin Yanar Gizo (A matsakaita, sakamakon girman fayilolin da aka samu sun kasance 7% karami.)

A haƙiƙa, bambance-bambancen sun gangara zuwa ga gaskiyar cewa Yi rajista ana amfani da shi azaman tsarin abu na WebAssembly kuma yana aiwatar da ɗauri da haɓakawa a cikin matakin aiwatarwa na baya-bayan nan. Yanar Gizo (wasm-opt). Cheerp yana amfani da LLVM bytecode a matsayin matsakaicin wakilci don ɗakunan karatu da fayilolin abu, yana ba da damar haɓaka fa'idar aiki mai faɗi ta amfani da metadata matakin LLVM ba tare da buƙatar aiwatarwa ba.

Labari mai dangantaka:
Emscripten 3.0, ginin kayan aiki don Gidan Yanar Gizo ta amfani da LLVM

Har ila yau, Cheerp yana amfani da ingantawa na PreExecuter don aiwatar da lamba da gangan a lokacin tattarawa, alal misali, don canza masu ginin da ake amfani da su don ƙaddamar da abubuwan duniya zuwa madaidaitan. Bugu da ƙari, ana amfani da PartialExecuter yayin haɗawa, wanda, dangane da tantance sigogin aikin, yana cire lambar da ke da tabbacin ba za a yi amfani da ita ba yayin aiwatarwa.

Cheerp kuma yana iya samar da lambar JavaScript don aiki mai ƙarfi tare da ƙwaƙwalwa. mai kwashe shara ya rufe. Musamman, maimakon yin koyi da sararin adireshi na gargajiya tare da rubutattun tsararru, Cheerp yana samar da taswirar kai tsaye daga abubuwan C ++ zuwa abubuwan JavaScript, wanda ke rage yawan ƙwaƙwalwar ajiya saboda mai tara shara na JavaScript yana da ikon cire abubuwan da ba a amfani da su. Don haɓaka aiki, ƙirƙira lambar tsaka-tsaki ta WebAssembly tana amfani da kari na SIMD don tsara daidaita ayyukan bayanai.

Ana iya amfani da Cheerp azaman dandamali don gina aikace-aikacen yanar gizo da aka haɗa abokin ciniki / uwar garken a cikin C++. A halin yanzu, abu ne na gama-gari don haɓaka farkon ƙarshen tushen burauzar da aka rubuta a cikin JavaScript da keɓan ƙarshen ƙarshen da aka rubuta a cikin PHP, Python, Ruby, ko JavaScript/Node.js.

Cheerp yana ba da hanyoyin gina cikakkun aikace-aikacen gidan yanar gizo na C++ waɗanda ke goyan bayan baya da gaba a cikin tushe guda ɗaya.

A lokacin aikin ginawa, ana haɗa gefen uwar garken zuwa lambar asali, kuma ana jujjuya abin dubawa zuwa wakilcin JavaScript. Ana aiwatar da gyara duk abubuwan da aka gyara aikin, gami da waɗanda aka canza zuwa JavaScript, ta amfani da rubutun tushen C++ ta amfani da fasahar Taswirar Map.

A ƙarshe, idan kuna sha'awar ƙarin sani game da shi, zaku iya bincika cikakkun bayanai a cikin bin hanyar haɗi.

Lambar mai tarawa ta dogara ne akan ci gaban LLVM da Clang kuma ya haɗa da ƙarin haɓakawa don haɓaka aiki da rage girman abubuwan da aka haɗa.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Alhakin bayanai: AB Internet Networks 2008 SL
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.