Emscripten 3.0-ը հասանելի է, C/C++ դեպի WebAssembly կոմպիլյատոր

Հրապարակվել է Emscripten 3.0 կոմպիլյատորի թողարկումը, որը թույլ է տալիս կոդ կազմել C/C++ և այլ լեզուներով, որոնց համար LLVM-ի վրա հիմնված ճակատները հասանելի են ունիվերսալ ցածր մակարդակի միջանկյալ կոդ WebAssembly-ում՝ JavaScript նախագծերի հետ հետագա ինտեգրման համար, գործարկելու համար։ վեբ բրաուզերում և օգտագործել Node.js-ում կամ ստեղծել առանձին բազմահարթակ հավելվածներ, որոնք աշխատում են wasm runtime-ի միջոցով: Ծրագրի կոդը բաշխվում է MIT լիցենզիայի ներքո: Կազմողն օգտագործում է LLVM նախագծի զարգացումները, իսկ Binaryen գրադարանն օգտագործվում է WebAssembly և օպտիմալացում ստեղծելու համար:

Emscripten նախագծի հիմնական նպատակն է ստեղծել մի գործիք, որը թույլ է տալիս վեբում կատարել կոդը՝ անկախ ծրագրավորման լեզվից, որով գրված է կոդը: Կազմված հավելվածները կարող են օգտագործել զանգեր դեպի ստանդարտ C և C++ գրադարաններ (libc, libcxx), C++ ընդարձակումներ, pthreads-ի վրա հիմնված բազմաթելեր, POSIX API-ներ և բազմաթիվ մուլտիմեդիա գրադարաններ: Վեբ API-ի և JavaScript կոդի հետ ինտեգրվելու API-ները տրամադրվում են առանձին:

Emscripten-ն աջակցում է SDL2 գրադարանի թողարկման հեռարձակմանը Canvas-ի միջոցով, ինչպես նաև ապահովում է OpenGL-ի և EGL-ի աջակցություն WebGL-ի միջոցով, որը թույլ է տալիս գրաֆիկական հավելվածներն ու խաղերը փոխարկել WebAssembly-ի (օրինակ՝ կա Qt գործիքակազմի մի նավահանգիստ և աջակցում է Unreal Engine-ին: 4 և Unit խաղային շարժիչներ, ֆիզիկական Bullet շարժիչ): Բացի C/C++-ով կոդ կազմելուց, նախագծերը մշակվում են առանձին՝ հնարավորություն տալու թարգմանիչներին և վիրտուալ մեքենաներին աշխատելու բրաուզերներում Lua, C#, Python, Ruby և Perl լեզուների համար: Հնարավոր է նաև LLVM-ի վրա կիրառել ոչ Clang ֆրոնտներ, որոնք հասանելի են այնպիսի լեզուների համար, ինչպիսիք են Swift-ը, Rust-ը, D-ն և Fortran-ը:

Հիմնական փոփոխություններ 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, isVectorType, isStructuralTypeStreStructuralType,StructuralType. ctionDef, isPossiblyFunctionType, isFunctionType, getReturnType, splitTo kenList, _IntToHex, IEEEUnHex, Compiletime.isPointerType, Compiletime.isStructType, Compiletime.INT_TYPES, isType:
  • Shell.html և shell_minimal.html ձևանմուշներում սխալի հաղորդագրությունների ելքը, որոնք տեղի են ունենում emscripten-ի գործարկման ընթացքում և դուրս են գալիս հավելվածի կողմից stderr-ի միջոցով, լռելյայն փոխարկվում է console.warn-ի փոխարեն console.error-ի փոխարեն:
  • Ավելացվեց ֆայլերի անուններում օգտագործվող տեքստի հատուկ կոդավորումը նշելու հնարավորություն: Ֆայլի անունը փոխանցելիս կոդավորումը կարող է նշվել վերջածանցի տեսքով, օրինակ՝ «a.rsp.utf-8» կամ «a.rsp.cp1251»):

Source: opennet.ru

Добавить комментарий