Emscripten 3.0, rangkaian alat binaan untuk WebAssembly menggunakan LLVM

Baru-baru ini keluaran versi baharu penyusun Emscripten 3.0 telah diumumkan, yang dicirikan dengan membenarkan kod untuk disusun dalam C / C ++ dan bahasa lain yang mana bahagian hadapan berasaskan LLVM tersedia, dalam WebAssembly middleware universal peringkat rendah.

Fungsi utama kompilasi ini adalah untuk penyepaduan seterusnya dengan Projek JavaScript, dijalankan dalam pelayar web, gunakan dalam Node. Js atau buat aplikasi kendiri merentas platform yang berjalan dengan masa jalan wasm.

Mengenai Emscripten

Matlamat utama pembangunan projek Emscripten adalah untuk mencipta alat yang membolehkan anda menjalankan kod di Web, tanpa mengira bahasa pengaturcaraan di mana ia ditulis.

Aplikasi yang disusun boleh menggunakan panggilan perpustakaan C dan C ++ standard (libc, libxxx), sambungan C ++, berbilang benang berasaskan pthread, API POSIX dan banyak perpustakaan multimedia. API untuk penyepaduan dengan API web dan kod JavaScript disediakan secara berasingan.

Emskripten menyokong penstriman output perpustakaan SDL2 melalui Kanvas, dan juga menyediakan sokongan OpenGL dan EGL melalui WebGL, membolehkan anda menukar aplikasi grafik dan permainan kepada WebAssembly.

Hampir mana-mana asas kod C atau C ++ mudah alih boleh disusun ke dalam WebAssembly menggunakan EmscriptenDaripada permainan berprestasi tinggi yang perlu membuat grafik, memainkan bunyi, dan memuatkan serta memproses fail, kepada rangka kerja aplikasi seperti Qt. Emscripten telah pun digunakan untuk menukar senarai pangkalan kod dunia sebenar yang sangat panjang kepada WebAssembly, termasuk pangkalan kod komersial seperti Unreal Engine 4 dan Unity Engine.

Selain menyusun kod C / C ++, projek dibangunkan secara berasingan untuk memastikan jurubahasa dan mesin maya untuk Lua, C #, Python, Ruby dan Perl bermula dalam penyemak imbas. Anda juga boleh menggunakan antara muka bukan Clang pada LLVM yang tersedia untuk bahasa seperti Swift, Rust, D dan Fortran.

Perlu diingatkan bahawa terdapat perbezaan antara masa jalanan asli dan Emscripten, yang bermaksud bahawa, secara amnya, eIa perlu membuat beberapa perubahan pada kod asli. Walaupun begitu, banyak aplikasi hanya perlu menukar cara mereka mentakrifkan gelung utama mereka dan juga mengubah suai pengendalian fail mereka untuk menampung pengehadan penyemak imbas / JavaScript.

Terdapat juga pengehadan yang boleh menjadikan beberapa kod lebih mudah untuk dipindahkan - baca Garis Panduan Mudah Alih untuk menentukan tempat anda mungkin perlu menghabiskan lebih banyak usaha.

Ciri baharu utama Emscripten 3.0

Dalam versi baharu yang dibentangkan ini, perpustakaan musl C yang digunakan dalam emscripten telah dikemas kini kepada versi 1.2.2 (versi 1.1.15 telah digunakan dalam cawangan Emscripten 2.x).

Daripada perpustakaan parseTools.js sebahagian daripada fungsi telah dialih keluar, yang digunakan terutamanya dalam projek: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType _IntToHex, PoETructuralType.

manakala Dalam templat shell.html dan shell_minimal.html, output mesej ralat yang berlaku semasa operasi emscripten dan dikeluarkan oleh aplikasi melalui stderr ia ditukar secara lalai untuk menggunakan console.warn dan bukannya console.error.

Ia juga diketengahkan bahawa menambahkan keupayaan untuk menentukan pengekodan teks tertentu yang digunakan dalam nama fail. Pengekodan boleh ditentukan sebagai akhiran apabila menghantar nama fail, contohnya "a.rsp.utf-8" atau "a.rsp.cp1251").

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang Emscripten, anda boleh merujuk butiran projek di dalamnya laman web rasmi.

Dan dengan cara yang sama, anda boleh merujuk dokumentasi di web tentang cara menggunakan Emscripten, tapak rujukan yang boleh kami cadangkan ialah tapak web pembangun Mozilla: https://developer.mozilla.org.

Juga, adalah penting untuk menyebut bahawa kod projek diedarkan di bawah lesen MIT. Pengkompil menggunakan perkembangan daripada projek LLVM dan perpustakaan Binaryen digunakan untuk menjana WebAssembly dan pengoptimuman. Anda boleh menyemak kod anda sumber di GitHub.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.