Emscripten 3.0, שרשרת כלים לבנות עבור WebAssembly באמצעות LLVM

לאחרונה הוכרזה שחרור הגרסה החדשה של המהדר Emscripten 3.0, המתאפיין בכך שהוא מאפשר להדר קוד ב-C/C++ ובשפות אחרות שעבורן זמינים ממשקי חזית מבוססי LLVM, ב-WebAssembly אוניברסלית של תוכנת ביניים ברמה נמוכה.

הפונקציה העיקרית של קומפילציה זו היא לשילוב שלו לאחר מכן עם JavaScript Projects, לרוץ בדפדפן אינטרנט ולהשתמש ב-Node. Js או צור אפליקציות עצמאיות חוצות פלטפורמות הפועלות עם זמן הריצה של wasm.

על Emscripten

המטרה הראשית פיתוח פרויקט Emscripten זה ליצור כלי המאפשר לך להריץ קוד באינטרנט, ללא קשר לשפת התכנות שבה הוא כתוב.

יישומים מהודרים יכולים להשתמש בקריאות ספריות סטנדרטיות C ו-C++ (libc, libcxx), הרחבות C++, ריבוי הליכי ריבוי מבוססי pthreads, POSIX API וספריות מולטימדיה רבות. ממשקי API לשילוב עם ה-API של האינטרנט וקוד JavaScript מסופקים בנפרד.

הירשם תומך בהזרמה של פלט ספריית SDL2 דרך Canvas, ומספקת גם תמיכה ב-OpenGL ו-EGL באמצעות WebGL, המאפשרת לך להמיר יישומים ומשחקים גרפיים ל-WebAssembly.

כמעט כל בסיס קוד נייד C או C++ ניתן להידור לתוך WebAssembly באמצעות Emscriptenממשחקים בעלי ביצועים גבוהים שצריכים לעבד גרפיקה, להשמיע צלילים ולטעון ולעבד קבצים, ועד למסגרות יישומים כמו 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 _IntToHex, IEEyptime.HextileType,Complete.E.

בעוד בתבניות 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 (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.