שחרור של ForgeZero 1.9.0, כלי בנייה עבור C ואסמבלר

ForgeZero 1.9.0 (fz), כלי בנייה משורת פקודה עבור פרויקטים שנכתבו ב-C, C++ ושפות אסמבלי (NASM, GAS, FASM), שוחרר. הכלי אינו דורש Makefile או קבצי תצורה אחרים לשימוש בסיסי. קוד הפרויקט כתוב ב-Go ומורשה תחת רישיון MIT.

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

המהדרים הנתמכים הם GCC, Clang, G++ ו-Clang++; האסמבלים הם NASM, GAS ו-FASM; המקשרים הם LD, GCC ו-Clang; וארכיון AR נתמך. אזהרות חובה עבור C ו-C++ הן: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". כלי החיטוי AddressSanitizer ו-UndefinedBehaviorSanitizer מופעלים כברירת מחדל (ניתן להשבית אותם באמצעות הדגל -sanitize=false). הפלטפורמות הנתמכות הן: Linux, macOS, Windows (WSL2 ומקורי בניסוי).

שינויים עיקריים בגרסה 1.9.0:

  • נוסף דגל "-target" , המאפשר קומפילציה צולבת עבור כל ארכיטקטורה עם כלי הקידומת המתאימים. fz קובע אוטומטית את שמות המהדר, המקשר והארכיון בהתבסס על המזהה שצוין (למשל, "arm-linux-gnueabihf-gcc"). כל פלטפורמות היעד הסטנדרטיות של GNU נתמכות, כולל arm-linux-gnueabihf, aarch64-linux-gnu ו-riscv64-linux-gnu.
  • תמיכה בפרוטוקול שרת השפה (LSP) יושמה. הדגל "-compile-commands" יוצר קובץ compile_commands.json (מסד נתונים של קומפילציה) בשורש הפרויקט. הקובץ נקרא על ידי שפה. שרתים clangd ו-ccls, המספקים השלמה אוטומטית, ניווט קוד ואבחון בעורכים התומכים ב-LSP (Neovim, VSCode, CLion, Emacs וכו').
  • הפקודה "-update" של fz שומרת כעת את הקובץ הבינארי הנוכחי לקובץ /usr/local/bin/fz.old לפני התקנת גרסה חדשה, מה שמאפשר לך לחזור לגרסה הקודמת מבלי להתקין מחדש.
  • תוקן באג בפרויקטים מרובי ספריות שבו קבצים עם שמות בסיס זהים מתת-ספריות שונות היו מחליפים את קבצי האובייקטים של זה. שמות קבצי האובייקטים נוצרים כעת על סמך הנתיב היחסי המלא לקובץ המקור.
  • יושם מצב אינטראקטיבי "fz -shell" לבניית קבצים בודדים.
  • כיסוי בדיקה נוסף עבור פקודות SplitCommand, CmdSet ו-CmdBuild. כיסוי הבדיקה עבור חבילת המקשר גדל מ-17% ל-60%, והכיסוי עבור כל החבילות עלה על 40%.
  • נוסף מנגנון החלפה של CheckTool לבדיקת תרחישים עם רכיבי שרשרת כלים חסרים.

שינויים ממהדורות קודמות:

  • גרסה 1.8.0 מיישמת את ההרכבה של ספריות סטטיות (-type static / -lib), מבטיחה את הייחודיות של שמות קבצי אובייקטים בפרויקטים מרובי-דירים, ומתקנת שגיאות בתת-מערכת ההרכבה הקשורות לחציית הנתיב "..".
  • גרסה 1.7.0 מוסיפה קומפילציה מקבילית (-j N, 0 - זיהוי אוטומטי של מספר הליבות), תמיכה בסקריפטים של מקשר (-T) וכתובות נקודות כניסה (-Ttext), מצב אינטראקטיבי (fz -shell), בחירה מפורשת של פורמט פלט (elf32, elf64, bin), קומפילציה של קבצי C++ (.cpp, .cc, .cxx) עם אותם דגלי אזהרה מחמירים כמו עבור C.
  • גרסה 1.6.0 מוסיפה אתחול פרויקטים (fz -init, יוצר .fz.yaml, .fzignore, README.md), תמיכה בפורמט bin (-format bin) עבור טועני אתחול וקושחה, ושדות תצורה libs, flags.cc, flags.asm, flags.ld.
  • גרסה 1.5.0 מציגה מספר ספריות מקור (source_dirs), רשימות קבצים מפורשות (source_files), תבניות הכללה/אי הכללה, שדה libs עבור ספריות קישור, קובץ .fzignore ומיזוג רב-מפלסי של קבצי תצורה.

מקור: OpenNet.ru

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