C/C++-аас WebAssembly хөрвүүлэгч Emscripten 3.0 боломжтой

Emscripten 3.0 хөрвүүлэгчийн хувилбар хэвлэгдсэн бөгөөд энэ нь танд C/C++ болон LLVM-д суурилсан урд талын интерфейсийг ашиглах боломжтой бусад хэл дээр JavaScript төслүүдтэй дараа нь интеграцчлах зорилгоор WebAssembly дунд түвшний бүх нийтийн дунд түвшний код болгон хөрвүүлэх боломжийг олгоно. вэб хөтөч дээр ашиглах ба Node.js дээр ашиглах эсвэл wasm ажиллах цагийг ашиглан ажилладаг бие даасан олон платформ програмуудыг үүсгэх. Төслийн кодыг MIT лицензийн дагуу түгээдэг. Хөрвүүлэгч нь LLVM төслийн хөгжүүлэлтийг ашигладаг бөгөөд Binaryen номын санг WebAssembly үүсгэх, оновчтой болгоход ашигладаг.

Emscripten төслийн гол зорилго нь код бичсэн програмчлалын хэлээс үл хамааран вэб дээр код гүйцэтгэх боломжийг олгодог хэрэгсэл бий болгох явдал юм. Эмхэтгэсэн программууд нь стандарт C ба C++ сангууд (libc, libcxx), C++ өргөтгөлүүд, pthreads-д суурилсан олон урсгал, POSIX API болон олон мультимедиа номын сан руу залгах боломжтой. Web API болон JavaScript кодтой нэгтгэх API-г тусад нь өгдөг.

Emscripten нь SDL2 номын сангийн гаралтыг Canvas-аар дамжуулахыг дэмждэг бөгөөд мөн WebGL-ээр дамжуулан OpenGL болон EGL-ийг дэмждэг бөгөөд энэ нь график програмууд болон тоглоомуудыг WebAssembly руу хөрвүүлэх боломжийг олгодог (жишээлбэл, Qt хэрэгслийн порт байдаг ба Unreal Engine-ийг дэмждэг) 4 болон Unit тоглоомын хөдөлгүүр, физик Bullet хөдөлгүүр). C/C++ хэл дээр код эмхэтгэхээс гадна Lua, C#, Python, Ruby, Perl хэл дээрх хөтчүүдэд орчуулагч болон виртуал машинуудыг ажиллуулах төслийг тусад нь боловсруулж байна. Мөн Swift, Rust, D, Fortran зэрэг хэлнүүдэд ашиглах боломжтой Clang-ийн бус фронтуудыг LLVM-д ашиглах боломжтой.

Emscripten 3.0-д гарсан томоохон өөрчлөлтүүд:

  • Emscripten-д хэрэглэгддэг musl C номын санг 1.2.2 хувилбар болгон шинэчилсэн (2 хувилбарыг Emscripten 1.1.15.x салбарт ашигласан).
  • Төсөлд голчлон хэрэглэгдэж байсан функцүүдийн зарим хэсгийг parseTools.js сангаас хассан: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType, isStructuralSperugety, artBits, isFunctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTokenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType.
  • Shell.html болон shell_minimal.html загваруудад emscripten-ийн үйл ажиллагааны явцад гарч буй алдааны мэдэгдлүүдийн гаралтыг stderr-ээр дамжуулан програмаас гаргаж авдаг нь анхдагчаар console.error-ын оронд console.warn-г ашиглахаар солигддог.
  • Файлын нэрэнд ашигласан тодорхой текст кодчилолыг зааж өгөх чадварыг нэмсэн. Файлын нэрийг дамжуулахдаа кодчилолыг дагавар хэлбэрээр зааж өгч болно, жишээлбэл, "a.rsp.utf-8" эсвэл "a.rsp.cp1251").

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх