Emscripten 3.0, як асбоби сохтани WebAssembly бо истифода аз LLVM

Чанде пеш нашри версияи нави компилятори Emscripten 3.0 эълон карда шуд, ки бо иҷозати тартиб додани код дар C / C ++ ва забонҳои дигаре, ки барои онҳо фронтҳои LLVM асосёфта мавҷуданд, дар WebAssembly миёнарави универсалии сатҳи паст тавсиф мешавад.

Вазифаи асосии ин маҷмӯа ин ҳамгироии минбаъдаи он бо лоиҳаҳои JavaScript мебошад, ки дар браузери веб кор мекунанд ва дар Node. Js ё барномаҳои мустақили байниплатформавӣ эҷод кунед, ки бо вақти кории wasm кор мекунанд.

Дар бораи Emscripten

Мақсади асосӣ таҳияи лоиҳаи Emscripten сохтани асбобест, ки ба шумо имкон медиҳад кодро дар веб иҷро кунед, новобаста аз забони барномасозӣ, ки дар он навишта шудааст.

Барномаҳои тартибдодашуда метавонанд зангҳои стандартии китобхонаи C ва C ++ -ро истифода баранд (libc, libcxx), васеъкуниҳои C ++, мултимедиявӣ дар асоси pthreads, POSIX API ва бисёр китобхонаҳои мултимедиявӣ. APIҳо барои ҳамгироӣ бо веб API ва коди JavaScript алоҳида пешниҳод карда мешаванд.

қайд кардан ҷараёни баромади китобхонаи SDL2-ро тавассути Canvas дастгирӣ мекунад, ва инчунин дастгирии OpenGL ва EGL-ро тавассути WebGL таъмин мекунад, ки ба шумо имкон медиҳад, ки замимаҳои графикӣ ва бозиҳоро ба WebAssembly табдил диҳед.

Амалан ҳама гуна пойгоҳи рамзии сайёри C ё C ++ метавонад бо истифода аз Emscripten дар WebAssembly тартиб дода шавадАз бозиҳои баландмаъное, ки бояд графикҳоро намоиш диҳанд, садоҳо бозӣ кунанд ва файлҳоро бор ва коркард кунанд, то чаҳорчӯбаҳои барномавӣ ба монанди Qt. Emscripten аллакай барои табдил додани рӯйхати хеле дарози пойгоҳҳои коди воқеии ҷаҳон ба WebAssembly, аз ҷумла пойгоҳҳои рамзи тиҷоратӣ ба монанди Unreal Engine 4 ва Unity Engine истифода шудааст.

Илова ба тартиб додани рамзи C / C ++, лоиҳаҳо алоҳида таҳия карда мешаванд, то дар браузерҳо тарҷумонҳо ва мошинҳои виртуалӣ барои Lua, C #, Python, Ruby ва Perl оғоз шаванд. Инчунин мумкин аст ба кор бурдани интерфейсҳои ғайри Clang ба LLVM, ки барои забонҳо ба монанди Swift, Rust, D ва Fortran дастрасанд.

Бояд қайд кард, ки байни вақти корӣ ва Emscripten фарқиятҳо мавҷуданд, ки ин маънои онро дорад, ки умуман, дБа коди модарй баъзе тагьирот даровардан лозим аст. Гуфта мешавад, ки бисёре аз барномаҳо бояд танҳо тарзи муайян кардани ҳалқаи асосии худро тағир диҳанд ва инчунин коркарди файлҳои худро барои мувофиқ кардани маҳдудиятҳои браузер / JavaScript тағир диҳанд.

Маҳдудиятҳое низ мавҷуданд, ки метавонанд интиқоли баъзе кодҳоро осон кунанд - Дастурҳои интиқолро хонед, то муайян кунед, ки дар куҷо шумо бояд кӯшиши бештар сарф кунед.

Хусусиятҳои нави асосии Emscripten 3.0

Дар ин версияи нави пешниҳодшуда, китобхонаи musl C, ки дар emscripten истифода мешавад, ба версияи 1.2.2 навсозӣ шудааст (версияи 1.1.15 дар филиали Emscripten 2.x истифода шудааст).

Аз китобхонаи parseTools.js як қисми функсияҳо хориҷ карда шуданд, ки асосан дар лоиҳа истифода мешаванд: removePointing, pointingLevels, removeAllPointing, isVoidType, isStructPointerType, isArrayType, isStructType, isVectorType, isStructuralType getStructuralTypeParts, getStructuralType, getStructureType, _IEETpeTileTileTileTile.y,

Дар ҳоле ки Дар қолибҳои shell.html ва shell_minimal.html, баромади паёмҳои хатогӣ ки ҳангоми амалиёти emscripten рух медиҳанд ва аз ҷониби барнома тавассути stderr дода мешаванд он ба таври нобаёнӣ барои истифодаи console.warn ба ҷои console.error тағир дода мешавад.

Инчунин таъкид шудааст, ки қобилияти муайян кардани рамзгузории матни мушаххасеро, ки дар номҳои файл истифода мешаванд, илова кард. Рамзгузорӣ метавонад ҳамчун суффикс ҳангоми интиқоли номи файл муайян карда шавад, масалан "a.rsp.utf-8" ё "a.rsp.cp1251").

Дар ниҳоят, агар шумо ба маълумоти бештар дар бораи Emscripten таваҷҷӯҳ дошта бошед, шумо метавонед бо тафсилоти лоиҳа дар он муроҷиат кунед вебсайти расмӣ.

Ва ба ҳамин тариқ, шумо метавонед бо ҳуҷҷатҳои интернетӣ дар бораи чӣ гуна истифода бурдани Emscripten муроҷиат кунед, сайти истинод, ки мо метавонем онро вебсайти таҳиягари Mozilla тавсия кунем: https://developer.mozilla.org.

Инчунин, қайд кардан муҳим аст, ки рамзи лоиҳа таҳти иҷозатномаи MIT паҳн карда мешавад. Компилятор коркардҳои лоиҳаи LLVM-ро истифода мебарад ва китобхонаи Binaryen барои тавлиди WebAssembly ва оптимизатсия истифода мешавад. Шумо метавонед рамзи худро тафтиш кунед сарчашма дар GitHub.


Аваллин эзоҳро диҳед

Назари худро бинависед

Суроғаи почтаи электронии шумо нест, нашр карда мешавад. Майдонҳои талаб карда мешавад, бо ишора *

*

*

  1. Масъул барои маълумот: AB Internet Networks 2008 SL
  2. Мақсади маълумот: Назорати СПАМ, идоракунии шарҳҳо.
  3. Қонунӣ: Розигии шумо
  4. Иртиботи маълумот: Маълумот ба шахсони сеюм расонида намешавад, ба истиснои ӯҳдадориҳои қонунӣ.
  5. Нигоҳдории маълумот: Пойгоҳи додаҳо аз ҷониби Occentus Networks (ИА) ҷойгир карда шудааст
  6. Ҳуқуқҳо: Ҳар лаҳза шумо метавонед маълумоти худро маҳдуд, барқарор ва нест кунед.