מייסד QEMU ומייסד FFmpeg מפרסם QuickJS JavaScript Engine

המתמטיקאי הצרפתי פבריס בלארד, שייסד את הפרויקטים QEMU ו-FFmpeg, יצר גם את הנוסחה המהירה ביותר לחישוב המספר Pi ופיתח את פורמט התמונה .bpg, פרסם את המהדורה הראשונה של מנוע JavaScript החדש QuickJS. המנוע קומפקטי ומיועד לשילוב במערכות אחרות. קוד הפרויקט כתוב ב-C ומופץ תחת רישיון MIT. בנייה של המנוע זמינה גם היא, מורכבת לתוך WebAssembly באמצעות Emscripten ומתאימה לביצוע בדפדפנים.

יישום JavaScript תומך מפרט ES2019, כולל מודולים, גנרטורים אסינכרוניים ופרוקסי. מתמטיקה לא סטנדרטית נתמכת באופן אופציונלי הרחבות עבור JavaScript, כגון סוגי BigInt ו-BigFloat, וכן עומס יתר של המפעיל. הביצועים של QuickJS משמעותיים עדיף על אנלוגים זמינים, למשל, במבחן
bench-v8 מקדים את המנוע XS בשיעור של 35%, DukTape יותר מכפול ג'ריסקריפט שלוש פעמים ו MuJS שבע פעמים.

בנוסף לספרייה להטמעת המנוע באפליקציות, הפרויקט מציע גם מתורגמן qjs, שניתן להשתמש בו כדי להריץ קוד JavaScript משורת הפקודה. יתר על כן, מהדר qjsc זמין, המסוגל לייצר קבצי הפעלה ניתנים להרצה המתאימים לביצוע עצמאי שאינם דורשים תלות חיצונית.

תכונות עיקריות:

  • קומפקטי וקל לשילוב בפרויקטים אחרים. הקוד כולל רק כמה קבצי C שאינם דורשים תלות חיצונית להרכבה. יישום הקומפילציה הפשוט ביותר לוקח בערך 190 KB;
  • ביצועים גבוהים מאוד וזמן הפעלה קצר. העברת 56 אלף מבחני תאימות של ECMAScript נמשכת כ-100 שניות כאשר הם מבוצעים על ליבה אחת של מחשב שולחני רגיל. אתחול זמן ריצה לוקח פחות מ-300 מיקרו-שניות;
  • תמיכה כמעט מלאה במפרט ES2019 ותמיכה מלאה בנספח B, המגדיר רכיבים לתאימות עם יישומי אינטרנט מדור קודם;
  • עמידה מלאה בכל המבחנים מחבילת הבדיקות של ECMAScript;
  • תמיכה בהידור קוד Javascript לקבצי הפעלה ללא תלות חיצונית;
  • אספן אשפה המבוסס על ספירת התייחסויות ללא ניקוי מחזורי, מה שאפשר לנו להשיג התנהגות צפויה ולהפחית את צריכת הזיכרון;
  • סט הרחבות לחישובים מתמטיים ב-JavaScript;
  • מעטפת לביצוע קוד במצב שורת פקודה, התומכת בהדגשת קוד הקשר;
  • ספרייה סטנדרטית קומפקטית עם עטיפות מעל ספריית C.

הפרויקט מפתח גם שלוש ספריות C נלוות המעורבות ב-QuickJS ומתאימות לשימוש אישי:

  • libregexp - הטמעה מהירה של ביטויים רגולריים, תואם באופן מלא למפרט Javascript ES 2019;
  • libunicode - ספרייה קומפקטית לעבודה עם Unicode;
  • libbf - יישום של פעולות דיוק שרירותיות של נקודה צפה ופונקציות טרנסצנדנטליות עם עיגול מדויק.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster