מאמרים בנושא ‏Boost‏‏.

למה נטשתי את Boost אפילו שתרמתי אליו שתי ספריות בעבר

ב־יום חמישי, 31 ביולי 2025, מאת ארתיום; פורסם תחת: כללי, תכנה חופשית, לינוקס, פיתוח, C++‎‏, Boost‏; ‏2 תגובות

בעבר השתמשתי הרבה ב־Boost לטובת פרוייקטים שונים ב־C++‎. במיוחד לפני ש־C++11 הפך לנורמה. אבל לאט־לאט עם בעיות שבירת API השונות התחחתי להתרחק ממנו במיוחד כש־C++11 ויותר נתן מענה למרבית הבעיות הקריטיות ש־Boost פתר בעבר.

אז שנים רבות הסתדרתי בלי Boost. אפילו שתרמתי שתי ספריות בעבר Boost.Locale ו־Boost.Nowide - הן עכשיו מתוחזקות בצורה יוצאת דופן ע"י מפתח אחר.

עכשיו אני עובד על פרויקט גדול OpenLiveStacker שגם בו לא השתמשתי ב־Boost וגם היה לי מענה לבעיות נוספות דרך CppCMS שאני משתמשו בו בפנים לטובת UI. הוא מיועד בעיקר לאנדרואיד ולינוקס אבל הבנתי שיהיה שימושי גם בחלונות ואז התחלתי לעשות הסבה לחלונות.

בגדול הקוד גם ככה היה כמעט ולא תלוי בפלטפורמה אז לרב זה היה חלק ואז הגעתי לבעיה פשוטה של להריץ תהליך חיצוני, להרוג אותו אם צריך, לקבל סטטוס. בלינוקס ואנדרואיד פשוט עשיתי fork/exec/kill/wait. ואז הגעתי לחלונות. טוב אז מה עושים? אמרתי למה להמציא גלגל פשוט אקח Boost.Process - גוגל זריז - הוא בדיוק נותן מענה למה שאני צריך. אולי הייתי צריך להשתמש בו מלכתחילה? טוב נו. הסתכלתי במדריכים כתבתי, הורדתי גרסה אחרונה 1.88 של Boost לחלונות מקמפל ו־... לא עובד.

השגיאה bp::child לא מוגדר! טוב מוודא שאני פותח את הגרסה אחרונה של התיעוד (גוגל לא תמיד מביא אותה) והפלא הפלא אין יותר bp::child יש bp::process! מה קרה? אכן API השתנה. מתי זה קרה? לפני כשנה באוגוסט 2024. כלומר אם הייתי משתמש ב־Boost.Process מלכתחילה הקוד היה נשבר. (כדי להשתמש ב־api ישן צריך לעשות include וליצור aliases וכד)

שורה תחתונה - הם שברו API לגמרי. לא הוסיפו API חדש עם bp::process אלא מחקו את הקיים והחליפו. זה הזכיר לי לגמרי למה הפסקתי להשתמש ב־Boost. אז עשיתי אחורה פנה, ופשוט תחת ifdef כתבתי קוד עם שימוש ב־CreateProcess של חלונות ו... זה זה עבד ללא דופי.

עצוב. איך מפתחי תוכנה פשוט לא מבינים את המשמעות של תאימות API לאחור.

שוחררה גרסה 1.0.3 של CppCMS הכוללת תיקון של פריצת אבטחה

ב־יום שישי, 4 בינואר 2013, מאת ארתיום; פורסם תחת: תכנה חופשית, תכנה ומחשבים, CppCMS, Boost‏; ‏0 תגובות

היום שוחררה גרסה 1.0.3 של CppCMS שמתקנת פריצת אבטחה במנגנון בדיקת תקינות קלט UTF-8, שאפשר למערכת לקלוט מחרוזות לא תקינות. באג כזה יכול בתיאוריה להביא לפריצת XSS.

מומלץ לשדרג CppCMS לגרסה האחרונה.

המקור של הבאג נמצא ב־Boost.Locale. הבאג תוקן בגרסה 1.53 שעומדת להשתחרר בקרוב. מי שמשתמש בפונקציות של Boost.Locale לבדיקת תקינות הקלט UTF-8 צריך לקחת את אפשרות פריצת האבטחה הזו בחשבון.

מי שלא יכול לשדרג את גרסת ה־Boost יכול להשתמש בטלאי הבא:

http://cppcms.com/files/locale/boost_locale_utf.patch

שוחררה גרסת 1.48 של Boost שמכילה Boost.Locale

ב־יום רביעי, 16 בנובמבר 2011, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏, Unicode, Boost‏; ‏2 תגובות

סוף סוף שוחררה גרסה 1.48 של Boost. אחד הדברים המשמעותיים בה היא שילוב של Boost.Locale - ספריית הלוקליזציה שאני פיתחתי.

קישורים:

להזכירכם, Boost.Locale פותחה כחלק מפרויקט CppCMS‏

הפוסטר והמצגת מאוגוסט פינגווין

ב־יום שבת, 13 באוגוסט 2011, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏, Unicode, Boost‏; תגובה אחת

אני מפרסם כמו שהבטחתי את המצגת והפוסטר מהכנס:

  • המצגת של ההרצאה על Boost.Locale:
  • הפוסטר על CppCMS‏: pdf‏

שוחררה גרסת Boost.Locale חדשה

ב־יום שני, 11 ביולי 2011, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏, Unicode, Boost‏; ‏3 תגובות

אחרי עבודה ארוכה על שיפורי ממשק ותיקוני בעיות שהועלו בתהליך בחינה רשמית של Boost.Locale הגרסה החדשה 4.0.0 שוחררה.

בקרוב אתחיל לשלב אותה בעץ svn של Boost, כך שאם הכל ילך בסדר, אני צופה שהיא תיכנס לגרסה 1.48 או לכל המאוחר 1.49 של Boost.

כרגיל:

במקביל שוחררה גרסת CppCMS 0.99.8 שמכילה את כל השינויים של Boost.Locale וגם תיקוני באגים שהצטברו במהלך 3 חודשים אחרונים.

אם עדיין לא שמתם לב, אני נותן הרצאה על Boost.Locale באוגוסט פינגווין - תבואו יהיה מעניין (גם אם אתם לא מדברים ב־C++‎)

העמוד הבא

דפים

נושאים