Amazon Best VPN GoSearch

סמל OnWorks

critcl - אונליין בענן

הפעל את critcl בספק האירוח החינמי של OnWorks דרך Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה critcl שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.

תָכְנִית:

שֵׁם


critcl - יישום CriTcl

תַקצִיר


ביקורת ?אוֹפְּצִיָה...? ?פילה...

_________________________________________________________________

תיאור


ברוכים הבאים C זמן ריצה In Tcl, קריטקל בקיצור, מערכת לבניית חבילות הרחבה ב-C
עבור Tcl תוך כדי תנועה, מקוד C מוטמע בתוך סקריפטים של Tcl, לכל מי שמעוניין ליצור
הקוד שלהם הולך מהר יותר.

מסמך זה הוא דף הניהול של המדריך עבור ביקורת פקודה. קהל היעד שלה הוא
אנשים שצריכים לבנות חבילות באמצעות ביקורת לפריסה. כותבי חבילות עם
קוד C מוטמע יכול להתעלם ממסמך זה. אם אתם זקוקים לסקירה כללית של השלם
המערכת במקום זאת, אנא לכו וקראו את מבוא ל קריטקל.

יישום זה נמצא בשכבת היישומים של CriTcl.

*===================*
|יישומים |
| ביקורת |
| critcl::app |
*===================*

+- ...+
|חבילות ליבה |
| ביקורת |
| critcl::util |
+- ...+

+- ...+
|חבילות תמיכה|
| קטעים::* |
| md5, פלטפורמה |
| ... |
+- ...+

היישום תומך בשורת הפקודה הכללית הבאה:

ביקורת ?אוֹפְּצִיָה...? ?פילה...
הסט המדויק של האפשרויות הנתמכות, משמעותן והאינטראקציה ביניהן מפורט ב
סעיף בקשה אפשרויות להלן. לרשימה רחבה יותר של דוגמאות אנא עיינו בסעיף
"בניית חבילות Critcl" במסמך אודות שימוש קריטקל.

בקשה אפשרויות


האפשרויות הבאות מובנות

-v

--גִרְסָה
אפשרויות אלו גורמות ל-critcl להדפיס את הגרסה שלו אל stdout ואז לצאת.

-I נתיב
אפשרות זו מציינת נתיב include גלובלי נוסף לשימוש במהלך הקומפילציה
של ".critcl"קבצים. כל הערכים משמשים אם צוין מספר פעמים.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-L נתיב
אפשרות זו מציינת נתיב חיפוש ספרייה גלובלי נוסף לשימוש במהלך קישור
של ".critcl"קבצים. כל הערכים משמשים אם צוין מספר פעמים.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-מטמון נתיב
אפשרות זו מציינת את הנתיב לספרייה שתשמש כמטמון תוצאות. אם לא
ציין שברירת המחדל היא "~/.critcl/", או, בעת יצירת חבילה (ראה
אוֹפְּצִיָה -חבילה למטה), אל "~/.critcl/.", כאשר מצוין מספר פעמים ה-
הערך האחרון משמש.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-לְנַקוֹת כאשר מצוין, מטמון התוצאות מרוקן, כלומר כל הקבצים והתיקיות שנמצאו
בפנים נמחקים) לפני תחילת הקומפילציה.

אפשרות זו אינה רלוונטית בעת יצירת חבילה (ראה אפשרות -חבילה למטה) מכיוון
מצב זה מתחיל עם מטמון תוצאות ייחודי וריק.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

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

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-לנפות מצב
אפשרות זו מפעילה קומפילציה עם ניפוי שגיאות. היא מקבלת את המצבים הבאים. כאשר
שצוין מספר פעמים בו נעשה שימוש בשילוב של כל המצבים.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

זיכרון מצב זה מפעיל ניפוי שגיאות זיכרון של הקצאות שבוצעו דרך Tcl
הליבה.

סמלים
מצב זה מפעיל את בניית כל ".c"קבצים עם סמלי ניפוי שגיאות.

את כל מצב זה מפעיל את שניהם זיכרון ו סמלים.

-השבתה שם
אפשרות זו קובעת את הערך של אפשרות תצורת הבנייה המותאמת אישית שם ל שקר.
זה שווה ערך ל-"-עם-"שם 0 ".

המידע מאומת רק אם אחד מה-".critcl"קבצי קלט למעשה
מגדיר ומשתמש באפשרות תצורת בנייה מותאמת אישית עם זה שם.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-לְאַפשֵׁר שם
אפשרות זו קובעת את הערך של אפשרות תצורת הבנייה המותאמת אישית שם ל נָכוֹן.
זה שווה ערך ל-"-עם-"שם 1 ".

המידע מאומת רק אם אחד מה-".critcl"קבצי קלט למעשה
מגדיר ומשתמש באפשרות תצורת בנייה מותאמת אישית עם זה שם.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

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

אפשרות זו אינה רלוונטית בעת יצירת חבילה (ראה אפשרות -חבילה למטה) מכיוון
מצב זה מתחיל עם מטמון תוצאות ייחודי וריק.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

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

-לִשְׁמוֹר אפשרות זו תגרום למערכת לשמור את ה-".c"קבצים שנוצרו על ידי ריצה ב-
מטמון תוצאות. בעת יצירת חבילה (ראה אפשרות -חבילה למטה) זה גם מונע
מחיקת מטמון התוצאות הייחודי בו השתמשה הריצה. אפשרות זו נועדה
לצורך תיקון שגיאות של ביקורת עצמו, היכן שייתכן שיהיה צורך לבדוק את
קוד C שנוצר.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-libdir נתיב
אפשרות זו מציינת את הנתיב שבו החבילות שנוצרו באמצעות האפשרות -חבילה
נשמרים. זה גם מציין נתיב לחיפוש בספריות, כמו למשל -L. כאשר
שצוין מספר פעמים הערך האחרון משמש. כאשר לא צוין כלל,
ברירת מחדל, "lib", משמש. שימו לב כיצד זהו נתיב יחסי, הממקם את התוצאה בתוך
ספריית העבודה הנוכחית.

-inclusivedir נתיב
אפשרות זו מציינת את הנתיב שבו נשמרות כל כותרות החבילה שנוצרו.
זה גם מציין נתיב לחיפוש קבצים כלולים, כמו למשל -Iכאשר צוין
מספר פעמים הערך האחרון משמש כיעד, אך כל הערכים הקודמים
נשמרים בנתיב החיפוש include. כאשר לא מצוין כלל, ברירת המחדל היא,
"לכלול", משמש. שימו לב כיצד זהו נתיב יחסי, הממקם את התוצאה בתוך
ספריית העבודה הנוכחית.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

-חבילה מצב ברירת המחדל של היישום הוא לבנות את ה".critcl"קבצים המופיעים ב-
שורת הפקודה ושמור את התוצאות במטמון התוצאות. בעיקרון מילוי מראש של
מטמון עם חבילות חשובות, מה שמקצר את הזמן הדרוש לשימוש בהן
חבילות.

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

האפשרות -תה, ראה להלן, מפעיל את המצב האחרון, יצירת TEA. אם שתי האפשרויות,
כלומר -חבילה ו -תה צוינו, האחרון שצוין מנצח.

במצב זה האפשרויות -לְנַקוֹת ו כוח אינם רלוונטיים ומתעלמים מהם. לעומת זאת,
האפשרות -libdir רלוונטי גם בזה וגם -תה מצב.

כאשר אפשרות זו מצוינת, שם הבסיס של ארגומנט הקובץ הראשון לאחר
אפשרויות משמשות כשם החבילה שיש ליצור. אם ההרחבה של זה
קובץ מציין ספרייה משותפת (".לכן"".l"".dylib", ו-".dll") זה גם
הוסר מקבוצת קבצי הקלט. א ".tclהקובץ " נשמר כחלק מהקלט. א
מניחים שקובץ יחיד ללא סיומת מכיל בפועל ".tcl"הרחבה. א
קובץ ללא סיומת, אך קבצי קלט אחרים הבאים מטופלים כשם של
ספרייה משותפת עצמה, והוסרה מקבוצת קבצי הקלט.

דוגמאות:
שם החבילה הוא: foo
=> קובץ הקלט הוא: foo.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: bar.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: foo.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: bar.tcl

-הופעה אפשרות זו, כאשר צוינה, תגרום למערכת להדפיס את התצורה של
המטרה הנבחרת אל stdout ולאחר מכן לצאת. ניתן להשפיע על בחירת היעד
דרך האפשרות -יַעַד (ראה למטה).

-הצג הכול
אפשרות זו, כאשר צוינה, תגרום למערכת להדפיס את כל הקובץ שנבחר.
קובץ תצורה ל stdout ולאחר מכן צא. בחירת קובץ התצורה יכולה
להיות מושפע דרך האפשרות -קונפיג (ראה לעיל).

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

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה להלן).

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

-תה דומה לאפשרות -חבילה, אלא שהמצב המופעל אינו מייצר קבצים בינאריים,
אלא היררכיית ספריות המכילה את ".critclקובץ ", הקבצים הנלווים אליו, ו-a
מערכת בנייה דמוית TEA עם רוב קוד התמיכה הדרוש (כולל עותקים)
של חבילות critcl).

אם שתי האפשרויות, כלומר -חבילה ו -תה צוינו, האחרון שצוין מנצח.

במצב זה האפשרויות -I, -L, -לְנַקוֹת, כוח, -מטמון, -inclusivedir, -לְאַפשֵׁר,
-השבתה, ו -עם-FOO אינם רלוונטיים ומתעלמים מהם. לעומת זאת, האפשרות -libdir
רלוונטי גם בזה וגם -חבילה מצב.

כאשר אפשרות זו מצוינת, שם הבסיס של ארגומנט הקובץ הראשון לאחר
אפשרויות משמשות כשם החבילה שיש ליצור. אם ההרחבה של זה
קובץ מציין ספרייה משותפת (".לכן"".l"".dylib", ו-".dll") זה גם
הוסר מקבוצת קבצי הקלט. א ".tclהקובץ " נשמר כחלק מהקלט. א
מניחים שקובץ יחיד ללא סיומת מכיל בפועל ".tcl"הרחבה. א
קובץ ללא סיומת, אך קבצי קלט אחרים הבאים מטופלים כשם של
ספרייה משותפת עצמה, והוסרה מקבוצת קבצי הקלט.

דוגמאות:
שם החבילה הוא: foo
=> קובץ הקלט הוא: foo.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: bar.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: foo.tcl
שם החבילה הוא: foo
=> קובץ הקלט הוא: bar.tcl

-עם-שם ערך
אפשרות זו קובעת את הערך של אפשרות תצורת הבנייה המותאמת אישית שם ל ערך.

המידע מאומת רק אם אחד מה-".critcl"קבצי קלט למעשה
מגדיר ומשתמש באפשרות תצורת בנייה מותאמת אישית עם זה שם.

אפשרות זו אינה רלוונטית בעת יצירת חבילת TEA (ראה אפשרות -תה לעיל).

חֲבִילָה מבנה


לחבילות שנוצרות על ידי critcl יש את המבנה הבסיסי הבא:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- תנאי רישיון (אופציונלי)
|
+- tcl (אופציונלי)
| +-
|
+-
+-

הערות

[1] הקובץ "pkgIndex.tcl"הוא קובץ אינדקס החבילות הסטנדרטי שמצופה מ-Tcl
ניהול חבילות. מקורו נרכש במהלך חיפוש חבילות, ומכריז על
חבילה ל-Tcl עם הקבצים שלה, וכיצד לטפל בהם.

[2] הקובץ "critcl-rt.tcl"הוא קובץ עזר המכיל את הקוד הנפוץ בו משתמש
"pkgIndex.tcl"כדי לבצע את משימותיו.

[3] הקובץ "תנאי רישיון" אופציונלי ומופיע רק אם ".critcl"להגיש את
החבילה נוצרת מהפקודה שנעשה בה שימוש critcl::license להכריז על חבילה
מחבר ורישיון.

[4] כל הקבצים שהוכרזו באמצעות הפקודה critcl::tsources מוכנסים לתת-הספרייה
"TCL".

[5] הספרייה המשותפת שנוצרת על ידי critcl מוכנסת לתת-ספרייה ספציפית לפלטפורמה-
במדריך.

כל המבנה, ובמיוחד הנקודה האחרונה, מאפשרים לנו למזג את התוצאות מאוחר יותר
(עבור אותה חבילה וגרסה) עבור פלטפורמות יעד מרובות לתוך ספרייה אחת
מבנה ללא התנגשות, פשוט על ידי העתקת הספריות המובילות זו על גבי זו.
רק קבצים שיכולים להתנגש נמצאים ב- ו"TCL"ספריות, ועבור אלה אנחנו
דעו שהם זהים בין יעדים שונים. התוצאה של מיזוג כזה תיראה כך:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- תנאי רישיון (אופציונלי)
|
+- tcl (אופציונלי)
| +-
|
+-
| +-
+-
| +-
+-
+-

שינויים עבור גִרְסָה 2.1


[1] תוקן באג שבו critcl::tsources פירשו נתיבים יחסיים כיחסיים ל-
ספריית העבודה הנוכחית במקום יחסית ל-".critcl"קובץ באמצעות
פקודה, כמו כל שאר הפקודות מסוג זה.

[2] תוקנו גורמים פנימיים, המונעים איסוף מידע עבור מספר רב של ".critcl"קבצים אל
דליפה ביניהם. ראוי לציין, קריטיקל::טק אינה אפשרות תצורה גלובלית
יותר.

[3] תוקן הפקודה critcl::license להיות פעולת null במצב "קומפילציה והפעלה",
במקום לזרוק שגיאה.

[4] תוקנה ההפרעה של אפליקציית critcl למטמון התוצאות של "קומפילציה והרצה".
in -חבילה מצב על ידי שימוש בזרם חולף נפרד לחלוטין (וברירת מחדל)
ספרייה עבור מצב זה.

[5] תוקן באג שבו שינויים ב-".critclהקובץ לא הביא לבנייה מחדש עבור מצב
"קומפילציה והרצה". כל פקודות ה-API הרלוונטיות מבטיחות כעת שינויים ב-UUID.

[6] תוקן באג בטיפול בקצה האחורי של critcl::debug כאשר מקורות ה-c הנלווים של
".critcl"הקבצים לא הוקמפלו עם אפשרויות ניפוי שגיאות, למרות ש".critclקובץ
היה.

[7] תוקן באג ב critcl::debug אשר מנע זיהוי של מצב "הכל" כאשר היה
לא הארגומנט הראשון לפקודה.

[8] תוקן באג ב-"טעינה מוקדמת.c"מונע את הקומפילציה שלו בפלטפורמות שאינן Windows."

[9] תוקן באג ארוך שנים בטיפול בסימני זיהוי מרחב שמות בשם הפקודה.
טיעון של קריטי::cproc ו critcl::ccommandכעת ניתן לציין א
שם פקודה מלא ללא בעיות.

[10] מורחב/עובד מחדש critcl::tsources להיות הדרך הקנונית להכריז ".tcl"
קבצי נלווים אפילו עבור מצב "קומפילציה והפעלה".

[11] מורחב/עובד מחדש critcl::tsources כדי לאפשר את השימוש ב".critcl"קובץ כקובץ משלו
קובץ נלווה של Tcl.

[12] מורחב critcl::framework לבדוק באופן פנימי את יעד הבנייה של OS X, ולהתעלם ממנו
ההצהרה אם לא.

[13] מורחב critcl::failed להיות ניתן לקריאה יותר מפעם אחת ב".critclקובץ. ה
הקריאה הראשונה מאלצת את הבנייה, אם היא עדיין לא בוצעה, לקבל את התוצאה.
קריאות מחזירות את התוצאה המאוחסנת במטמון של הקריאה הראשונה.

[14] הרחיב את הטיפול במשתנה הסביבה CC בקוד הקובע את
מהדר לשימוש לטיפול (כלומר הסרה) של נתיבים למהדר, קובץ מהדר
הרחבות ואפשרויות מהדר שצוינו לאחר המהדר עצמו, ומשאירות רק
השם הבלעדי של המהדר.

[15] הרחיב את הקוד המטפל בחיפוש אחר ספריות טעונות מראש כדי להדפיס את הנתיבים שהוא מבצע
חיפש, מה שמקל על איתור באגים של כשל בחיפוש.

[16] פקודה חדשה קריטקל::טקל ניתן להשתמש בו כדי להצהיר על גרסת Tcl באופן מינימלי
נדרש כדי לבנות ולהפעיל את ".critcl"קובץ וחבילה. ברירת המחדל היא 8.4 אם לא
הוכרז. הורחב critcl כך שיהיו בו ה-stubs וה-headers עבור כל Tcl 8.4, 8.5,
ו8.6.

[17] פקודה חדשה קריטי::טעינה מאלץ את הבנייה והעומס של ".critclקובץ. זהו
הדרך הרשמית לעקיפה של סכימת ברירת המחדל של critcl לבנייה וטעינה לפי דרישה (lazy-build-&-load-on-demand).
עבור מצב "קומפילציה והרצה".

הערות שאחרי השימוש קריטי::טעינה / critcl::failed ב".critcl"קובץ זה לא
לא ניתן עוד להשתמש בפקודות critcl בקובץ זה. פעולה זו תגרום לשגיאה.

[18] הרחיב את דור הפרגמות '#line' לשימוש מידע מסגרת (אם זמין) ל
ספקו למהדר C מספרי שורות מדויקים לתוך ה-".critcl"קובץ עבור ה-
דיווח על אזהרות ושגיאות.

[19] מורחב קריטי::בדיקה עם רישום כדי לסייע באיתור שגיאות בבדיקות זמן בנייה של
סביבה, בתוספת ארגומנט אופציונלי נוסף כדי לספק תיוג.

[20] נוספה פקודה חדשה critcl::checklink אשר לא רק מנסה לבדוק את הסביבה
באמצעות קומפילציית הקוד, אך גם באמצעות יכולת הקישור שלו.

[21] נוספה פקודה חדשה קריטקל::הודעה עבור הודעות, כמו פקודה קריטי::שגיאה הוא עבור
דיווח שגיאות. באופן דומה, זהו וו שמשתמש החבילה רשאי לעשות
עקיפה. המימוש המוגדר כברירת מחדל, בשימוש על ידי מצב לעבד & לָרוּץ לא עושה כלום. ה
יישום עבור מצב ליצור חבילה מדפיס את ההודעה ל-stdout.

השימוש המתוכנן הוא לדיווח על תוצאות שנקבעו על ידי קריטי::בדיקה ו
critcl::checklink במהלך הבנייה, כדי לסייע בניפוי שגיאות כאשר משהו משתבש
עם צ'ק.

[22] חשיפת המרכיבים הפנימיים של עיבוד הארגומנטים של קריטי::הליך לשימוש על ידי מתקדמים
משתמשים. הפקודות החדשות הן

[1] critcl::argnames

[2] critcl::argcnames

[3] critcl::argcsignature

[4] critcl::argvardecls

[5] critcl::argconversion

אנא עיין בסעיף מתקדם Embedded C קופונים של ביקורת תיעוד החבילה עבור
פרטים.

[23] הרחיב את חבילת critcl ליירוט חבילה לספק ולהקליט את הקובץ ->
מיפוי שמות חבילה. בנוסף, שינויים פנימיים אחרים מאפשרים כעת שימוש במרווחי שמות
שמות חבילות תוך שימוש בשמות נתיבים ופונקציית init תקינים.

[24] הפקודות שאינן בשימוש נמחקו critcl::optimize ו קריטי::כלול.

[25] הוסר -לב מצב מיישום critcl.

[26] שרידי תמיכה עבור Tcl 8.3 וקודמים לו הוסרו.

שינויים עבור גִרְסָה 3


[1] הפקודה critcl::platform הוצא משימוש בגרסה 2.1, הוחלף על ידי
critcl::targetplatform, אך נשמר לצורך תאימות. כעת הוא הוסר.

[2] הפקודה critcl::compiled נשמר בגרסה 2.1 עם סמנטיקה ב
סתירה לתוכו, לצורך תאימות. סתירה זו הוסרה,
שינוי הסמנטיקה הגלויה של הפקודה כך שתהיה תואמת את שמה.

[3] השינוי לגרסה 3 הפך הכרחי בגלל שני האלמנטים הנראים הבלתי תואמים
שינויים לעיל.

[4] הרחבת חבילת האפליקציות עם אפשרות חדשה לטיפול בקוד -תה. מפרט
אפשרות זו מפעילה מצב מיוחד שבו critcl מייצר חבילת TEA, כלומר עיטוף.
הקלט לתוך היררכיית ספריות וקבצי תמיכה המספקים לו TEA-
מערכת בנייה דומה.

אפשרות חדשה זו, ו -חבילה, לא לכלול אחד את השני. אם שניהם מצוינים, האחרון שנעשה בו שימוש
האפשרות עדיפה.

היררכיית ספריות החבילות שנוצרה היא ברובה עצמאית, אך לא במלואה.
זה דורש לא רק התקנה תקינה של Tcl, אלא גם מתקנים תקינים
של החבילות md5 ו קו ס"משניהם מסופקים על ידי טקליב צרור.
לא חובה, אך מומלץ להתקין כל אחת מהחבילות שיכולות
להאיץ את פעולת md5, כלומר ערכת קריפטו, tcllibc, או Trf.

[5] הרחבת חבילת critcl עם פקודה חדשה סריקה קריטית לוקח את הדרך אל
".critcl"קובץ, סורק אותו סטטית, והחזרת רישיון, גרסה, רשימה של
קבצי העזר שלו, רשימת ממשקי API מיובאים ורשימת קבצים מותאמים אישית שצוינו על ידי המפתח
אפשרויות תצורה. נתונים אלה הם הבסיס לעטיפת TEA המתוארת
מֵעַל.

שימו לב שזהו סטטי סריקה. בעוד שמצבי הבנייה האחרים יכולים (חייבים) לבצע את
".critcl"להגיש ולקבל החלטות ספציפיות לפלטפורמה בנוגע לקוד C שהורכב,
קבצי עזר וכו'. מצב עטיפת TEA אינו במצב ליצירת פלטפורמה-
החלטות ספציפיות. זה צריך לכלול את כל מה שעשוי להיות נחוץ
בזמן הבנייה בפועל. מכאן הסריקה הסטטית. עם זאת, יש לה סט משלה של
בעיות, כלומר חוסר היכולת להבין כל מבנה דינמי של בן לוויה
נתיבי קבצים, לפחות בפני עצמם. כך:

[6] הרחיב את ה-API בו משתמשים חבילות מבוססות critcl בעזרת הפקודה critcl::owns. בעוד
פקודה זו מתעלמת על ידי מצבי הבנייה הרגילים שתוארו על ידי הסורק הסטטי
הנ"ל מקבל את הארגומנטים שלו כשמות של קבצי עזר שיש לעטוף
לתוך חבילת ה-TEA ולא ניתן היה לזהות אותה על ידי הסורק אחרת, כמו
בגלל נתיבים דינמיים אל critcl::tsources, critcl::csources, קבלת מקורות
באופן ישיר, או פשוט כקבצי נתונים נלווים.

[7] הרחיב את ה-API בו משתמשים חבילות מבוססות critcl בעזרת הפקודה קריטקל::api עבור
ניהול טבלאות stubs, בין אם זה השימוש בהן, ו/או הצהרה וייצוא.

אנא עיין בסעיף דודים טבלתי ניהול שוטף של ביקורת תיעוד החבילה עבור
פרטים.

[8] הרחיב את ה-API בו משתמשים חבילות מבוססות critcl בעזרת הפקודה critcl::config משתמש
לניהול אפשרויות תצורה מותאמות אישית שצוינו על ידי המפתח, בין אם הן
שימוש ו/או הצהרה.

אנא עיין בסעיף מותאם אישית לִבנוֹת תְצוּרָה של ביקורת תיעוד החבילה
לקבלת פרטים.

[9] הרחיב את ה-API בו משתמשים חבילות מבוססות critcl עם הפקודות
קריטי::תיאור, סיכום קריטי, קריטקל::נושא, קריטקל::מטה, ו
דרישת בנייה critcl:: להצהרת המטא-נתונים של TEApot עבור/אודות ה-
חֲבִילָה.

אנא עיין בסעיף חֲבִילָה meta נתונים של ביקורת תיעוד החבילה עבור
פרטים.

שינויים עבור גִרְסָה 3.0.1


[1] תיקוני באגים מכל הבחינות. בפירוט:

[2] תוקן רישום של דרישות גרסת Tcl. שמירת שם החבילה והגרסה
יחד, פותחים את המטא-נתונים שנוצרו ופקודת טעינת החבילה שנוצרה.

[3] תוקנו סקריפטי הבנייה: בעת התקנה או עטיפת TEA, נוצרו כל קוד חסר
ספריות

[4] שינו את סקריפטי הבנייה כדי לצאת כראוי מהיישום כאשר חלון ה...
ממשק המשתמש הגרפי שלהם נסגר באמצעות כפתור (X).

[5] הוסר גרסה 8.5-ism (wb פתוח) אשר חמקה לתוך סקריפט הבנייה הראשי.

[6] שינו את סקריפטי הבנייה לדוגמה כדי להפריד את הפלט עבור השונים
דוגמאות (וחבילות) על ידי הוספת שורות ריקות.

[7] תיקון באג לדוגמה ב- stack::c: כלול הצהרות API לשימוש בקבצי הנלווה.

[8] הרחיב את התיעוד: ציין את הצורך בהתקנה תקינה של C
מהדר.

[9] הרחבנו את הגדרות היעד והקוד של Windows כדי לטפל בקבצי המניפסט שבהם נעשה שימוש
על ידי סביבות פיתוח מודרניות של מיקרוסופט. שימו לב שקוד זה מטפל בשניהם
אפשרויות, סביבה המשתמשת במניפסטים, וסביבות (ישנות(ות) יותר) בלעדיהן.

[10] הרחבת הגדרות היעד והקוד של Windows 64bit כדי לזהות אוטומטית את הצורך ב
ספריית העזרה "bufferoverflowU.lib" וקבע מחדש את הקומפילציה והקישור
פקודות כראוי. אנו מניחים שהספרייה חייבת להיות מקושרת כאשר היא קיימת.
זה לא אמור להזיק אם הספרייה קיימת, אבל זה לא הכרחי. זה פשוט מיותר.
אנו מחפשים את הספרייה בנתיבים שצוינו על ידי משתנה הסביבה LIB.

שינויים עבור גִרְסָה 3.0.2


[1] תוקנה בעיה במצב קומפילציה והרצה שבה פקודות שהוכנסו ל-auto_index אינן
נמצא על ידי הפקודה [לא ידוע] של Tcl.

[2] תוקן אי-התאמה במפתחות מערך ששיבשה את השימוש בנתוני לקוח ובפונקציית המחיקה עבור
הליך. דווח על ידי ג'וס דה קוסטר, עם תיקון.

[3] הטמעת אפשרות שורת פקודה -L, שווה ערך לאופציה -I, רק לספרייה
נתיבי חיפוש.

[4] תוקנו בעיות 5 ו-8 בגיטהאב. עקיפת משתנה חסר ::errorInfo. זה
אמור להיות נוכח תמיד, אולם נראה שישנן גרסאות של Tcl שסביבן
להפר הנחה זו.

שינויים עבור גִרְסָה 3.0.3


[1] תוקנו בעיות 5 ו-8 ב-github, עבור הסקריפטים build.tcl לדוגמה. עבודה סביב
משתנה חסר ::errorInfo. הוא אמור להיות קיים תמיד, אולם נראה שיש
תיקונים של Tcl סביבם מפרים הנחה זו.

שינויים עבור גִרְסָה 3.0.4


[1] תוקנה יצירת שם הפתיחה של החבילה כאשר הקוד הנכנס נקרא מ
stdin ואין לו נתיב מתאים.

[2] תוקנה בעיית github 11. כעת משתמש ב-/LIBPATH במקום -L ב-Windows (libinclude
הגדרת תצורה).

[3] ‏critcl מורחב לטיפול בפורמט -l:path של אפשרויות -l. GNU ld 2.22+ מטפל בזה.
על ידי חיפוש הנתיב כפי שהוא. טוב בעת ציון ספריות סטטיות, כ- -l רגיל
מחפש ספריות משותפות על פני ספריות סטטיות. critcl מטפל בזה עכשיו, כ
גרסאות GNU ישנות יותר לא מבינות אותו, וגם לא את הקישורים השונים הספציפיים לספקים.

[4] תוקנה בעיית גיטהאב מס' 12. Critcl קובע כעת את גרסת ה-MSVC הנמצאת בשימוש ומשתמש בה.
כדי לעבור בין אפשרויות ניפוי שגיאות שונות בקישורים. פישוט הטיפול ב
גם bufferoverflowU.lib, תוך שימוש באותו מנגנון וקריסת השניים
מקטעי התצורות שהיו לנו בחזרה לאחד.

[5] עיצבנו מחדש את הכנסת הפרגמות של #line לתוך קוד ה-C שנוצר כדי להימנע
מגבלות על ארגומנט מספר השורה המוטלות על ידי מהדרים שונים, ולהיות יותר
מדויק.

[6] עיבוד ארגומנטים שונה. האפשרות -libdir מרמזת כעת גם על -L עבור הארגומנט שלה.

[7] טיפול מורחב באפשרות -show (critcl::showconfig) כדי לרשום את הנתיב של ה-
קובץ התצורה שממנו מגיעים הנתונים. טוב לאיתור ניפוי תצורה
מעבד.

[8] הרחיב את סקריפט הבנייה עם מטרות כדי ליצור מחדש את התיעוד המוטמע,
ודיאגרמות, וליצור שחרור.

שינויים עבור גִרְסָה 3.0.5


[1] תוקן באג בקוד החדש עבור פרגמות #line שהופעלו בעת ציון קוד C
ללא רווח לבן מוביל.

[2] הורחב התיעוד כך שיכלול דפי ניהול עבור הרישיון, אחזור המקור,
מדריכי התקנה ומפתחים.

שינויים עבור גִרְסָה 3.0.6


[1] תוקנה בעיית 10 ב-Github. אפליקציית critcl מספקת כעת קוד יציאה תקין (1)
על כשל בבנייה, במקום תמיד לציין הצלחה (סטטוס 0).

[2] תוקנה בעיית github 13. הטיפול ב-bufferoverflowU.lib עבור גרסאות גרפיות היה
לא עקבי עם הטיפול בבניית ניפוי שגיאות. כעת הטיפול בו זהה
(מותנה) בשני המקרים.

[3] ניקוי תיעוד, בעיקר במדריך ההתקנה, ובקובץ README.md המוצג על ידי
GitHub

שינויים עבור גִרְסָה 3.0.7


[1] תוקן הקוד שנוצר על ידי critcl::c++commandהקוד שנפלט מסר הודעה שאינה
טבלת מחרוזות סטטית ל Tcl_GetIndexFromObj, תוך הפרת החוזה, אשר
דורש שהטבלה תהיה בעלת כתובת קבועה. זו הייתה זיכרון מטורף שמחכה ל
יקרה. תודה לבריאן גריפין על שהתריע בפנינו על הבעיה הכללית.

שינויים עבור גִרְסָה 3.1


[1] נוספה חבילה חדשה ברמה גבוהה יותר critcl::iassoc.

חבילה זו מפשטת את יצירת הקוד המקשר נתונים עם מפרש
דרך Tcl's Tcl_(Get|Set)AssocData() ממשקי API. המשתמש יכול להתרכז בנתונים שלו בזמן
כל קוד ה-C הדרוש לתמיכה בכך נוצר על ידי החבילה.

חבילה זו משתמשת בכמה מהתכונות החדשות שנוספו לליבה ביקורת
חבילה, ראה להלן.

[2] נוספה החבילה ברמה גבוהה יותר קריטקל::מחלקה.

חבילה זו מפשטת את יצירת אובייקטים ברמת C באמצעות מחלקה ומופע
פקודות. המשתמש יכול לכתוב הגדרת מחלקה עם משתני מחלקה ומשתני מופע
ו-שיטות דומות למחלקה TclOO, עם כל קוד ה-C הנדרש כדי
תומך בזה שנוצר על ידי החבילה.

חבילה זו משתמשת בכמה מהתכונות החדשות שנוספו לליבה ביקורת
חבילה, ראה להלן.

[3] הרחבת ה-API לטיפול במטא-דאטה של TEApot. נוספה הפקודה קריטקל::מטה? ל
שאילתת מידע במידע המאוחסן. השימוש העיקרי הצפוי כיום הוא אחזור של
שם החבילה הנוכחית באמצעות פקודות כלי עזר, לשימוש בשמות בנויים. זה
מידע מסוים זמין תמיד הודות לסריקה סטטית של החבילה
קובץ בעת ביצוע הפקודה critcl הראשונה.

החבילות החדשות critcl::iassoc ו קריטקל::מחלקה (ראה לעיל) הם משתמשים של זה
פקודה.

[4] הרחיב את ה-API עם פקודה, קריטקל::שם2ק, חושף את תהליך ההמרה
שם Tcl לתוך שם הבסיס, מרחב השמות ומרחב השמות C. זה מאפשר גישה ברמה גבוהה יותר
מחוללי קוד כדי לייצר את אותו סוג של מזהי C כמו ביקורת עצמו.

החבילה החדשה קריטקל::מחלקה (ראה לעיל) הוא משתמש של פקודה זו.

[5] הרחיב את ה-API עם פקודה, קריטקל::מקור, ביצוע פקודות critcl שנמצאו ב
קובץ נפרד בהקשר של הקובץ הנוכחי. זה מאפשר ניהול קל יותר
של גופי קוד גדולים יותר מכיוון שזה מאפשר למשתמש לפצל אותם לחלקים שקל יותר
לעכל נתחים קטנים יותר מבלי לגרום ליצירת חבילות מרובות.

[6] בהקשר לפריט הקודם, הורחב ה-API עם פקודות להסטת איסוף
של קוד C שנוצר לזיכרון. זה מקל על השימוש בפקודות עבור
קוד C מוטמע במחוללי קוד ברמה גבוהה יותר.

עיין בסעיף מִתקַדֵם: הסחות לקבלת פרטים על הפקודות שסופקו.

החבילה החדשה קריטקל::מחלקה (ראה לעיל) הוא משתמש במתקנים אלה.

[7] הרחיב את ה-API עם פקודות המסייעות למפתחים ביצירת קוד C מתאים.
#קַו הנחיות. זה מאפשר למחוללי קוד ברמה גבוהה יותר ליצור ולהכניס
ההנחיות שלהם, תוך הבטחת שגיאות קומפילציה בקוד שלהם מטופלות כראוי
מיוחס.

עיין בסעיף מִתקַדֵם: מקום ניהול לקבלת פרטים על הפקודות שסופקו.

החבילות החדשות critcl::iassoc ו קריטקל::מחלקה (ראה לעיל) הם משתמשים של אלה
מתקנים.

[8] הרחבת ה-API עם פקודות המאפשרות למשתמשים להגדיר ארגומנטים מותאמים אישית
וסוגי תוצאות עבור ::critcl::cproc.

עיין בסעיף מִתקַדֵם: מאריך cproc לקבלת פרטים על הפקודות שסופקו.

שינויים עבור גִרְסָה 3.1.1


[1] תיקוני באגים מכל הבחינות. בפירוט:

[2] תוקן יצירת שגיאות wrong#args עבור קריטי::cproc וקוד נגזר
(קריטקל::מחלקה שיטות מבוססות cproc). השתמש ב-NULL אם אין ארגומנטים, וקח
הקיזוז בחשבון.

[3] תוקן הטיפול בשמות חבילות על ידי קריטקל::מחלקהשכחתי שהם עשויים להכיל
מפרידי מרחבי שמות. עודכן לגרסה 1.0.1.

[4] מורחב קריטקל::מחלקה נוצרה הודעת שגיאה בעת יצירת המופע לשם הבהירות.
קפץ לגרסה 1.0.2.

שינויים עבור גִרְסָה 3.1.2


[1] שיפור. בפירוט:

[2] מורחב קריטי::cproc כדי להיות מסוגל להתמודד עם טיעונים אופציונליים, בצורה מוגבלת.
זה זמין אוטומטית ל קריטקל::מחלקה גם שיטות מבוססות cproc.

[3] תיקון באגים ב לסגן אמולציה עבור Tcl 8.4. הגדר כראוי משתנים שאינם בשימוש ל-
מחרוזת ריקה. גרסה משופרת של חבילת האמולציה lassign84 אל 1.0.1.

שינויים עבור גִרְסָה 3.1.3


[1] שיפור. בפירוט:

[2] נוסף סוג ארגומנט חדש "pstring", עבור "Pascal String", מחרוזת נספרת, כלומר א
שילוב של מצביע מחרוזת ואורך מחרוזת.

[3] נוספו שיטות חדשות critcl::argtypesupport ו ::critcl::argsupport להגדיר ולהשתמש
קוד תמיכה נוסף עבור סוג ארגומנט, המשמש כאן על ידי "pstring" לעיל כדי
להגדיר את המבנה הדרוש.

[4] תיקוני באגים למחצה בחבילות קריטקל::מחלקה ו critcl::iassocפרגמות עבור ה-AS
סורק מטא-דאטה כדי להבטיח שקבצי התבנית יהיו חלק מהחבילה.
הגרסאות שודרגו ל-1.0.4 ו-1.0.1 בהתאמה.

שינויים עבור גִרְסָה 3.1.4


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

[2] תוקנה שגיאת הקלדה שגרמה לפגיעה בתצורת win64.

[3] תוקנה בעיה מס' 16, שגיאת הקלדה בתיעוד הפקודה קריטקל::מחלקה.

שינויים עבור גִרְסָה 3.1.5


[1] תוקנה בעיה מס' 19. יצירת ביטוי רגולרי לחילוץ מספר גרסת ה-MSVC
יותר כללי כדי שזה יעבוד על מערכות שפה גרמנית. ייתכן שיהיה צורך בכך
ייבחן מחדש בעתיד, עבור מיקומים אחרים של Windows.

[2] תוקנה בעיה מס' 20. האפשרות -tea הפכה לעבודה בחלונות, לפחות באמולציית יוניקס.
סביבה כמו msys/mingw.

שינויים עבור גִרְסָה 3.1.6


[1] תוקנה בעיה מס' 21. בעוד שההגדרה המרובה של משתני מצביע ה-stub-table הייתה
בסדר עם כל לינקרי C שנראו עד כה, לינקרי C++ לא אהבו את זה בכלל.
עבדנו מחדש את הקוד כדי להבטיח שקבוצת משתנים זו תיווצר פעם אחת בלבד, ב
את העטיפה סביב כל החלקים להרכבה.

[2] תוקנה בעיה מס' 22, הטיפול בארגומנטים של מזהה הפקודה של
critcl::ccommand, קריטי::cproc, ו critcl::cdataכעת אנו מאפשרים כראוי כל Tcl
מזהה וליצור מהם מזהי C פנימיים מתאימים.

כחלק מכך, חתימת הפיקוד קריטקל::שם2ק השתנה. הפקודה כעת
מציג רשימה של ארבעה ערכים במקום שלושה. הערך החדש נוסף ב
הסוף.

עוד יותר התאם את יישום החבילה קריטקל::מחלקה, משתמש של
קריטקל::שם2קחבילה זו נמצאת כעת בגרסה 1.0.6 ודורשת critcl 3.1.6.

לבסוף תוקן הטיפול השגוי באפשרות -cname in critcl::ccommand, ו
קריטי::cproc.

[3] תוקנה בעיה מספר 23.

שינויים עבור גִרְסָה 3.1.7


[1] תוקנה בעיה מס' 24. חילוץ והצגה ללא תנאי של אזהרות מהדר שנמצאו ב-
יומן בנייה. מונע ממשתמשים לפספס אזהרות אשר, אמנם אינן גורמות לביצועי הבנייה
להיכשל, עדיין עשוי להצביע על בעיות.

[2] תכונה חדשה. פלט וו. כל הפלט של המשתמש שאינו קשור להודעות מנותב כעת דרך
הפקודה קריטי::הדפסה, ומשתמשים רשאים לעקוף אותו בעת שימוש ב- critcl
יישום-כחבילה.

[3] תכונה חדשה, מאת אשוק פ. נדקרני. תצורות פלטפורמה יכולות לרשת ערכים מ
תצורות שהוגדרו לפניהם.

שינויים עבור גִרְסָה 3.1.8


[1] תוקנה בעיה עם אינדקסי חבילות שנוצרו עבור Tcl 8.4. הצטרף לרשימת הפקודות.
עם נקודה-פסיק, לא שורה חדשה.

[2] תוקנה בעיה מספר 26 שהעלתה מקרי שימוש ששכחתי לקחת בחשבון בעת תיקונה.
באג מס' 21 (ראה critcl 3.1.6).

שינויים עבור גִרְסָה 3.1.9


[1] תוקנה בעיה מס' 27. נוספו הגדרות פלטפורמה חסרות עבור לינוקס חלופיים שונים ו-
יעדי OS X.

[2] תוקנה בעיה מס' 28. נוספו דגלי -mXX חסרים לקישור ב-linux-{32,64}-*
מטרות.

[3] תוקנה בעיה מס' 29. החלפתי את השימוש במידע גולמי של "רמאים" בעיבוד
של "cdefines" עם הנחיות ההכללה המתאימות הנגזרות ממנו.

[4] תוקנה הבעיה מאחורי בקשת משיכה שנדחתה #30 מאת אנדרו שאדורה. באופן דינמי.
לחלץ את הצהרות המשתנים stubs מקבצי הכותרת של Tcl וליצור
הגדרות משתנים תואמות לשימוש בקוד החבילה. הקוד שנוצר
עכשיו היו תמיד עקביים עם הכותרות, גם כאשר העותק של critcl שלהן הוא
הוחלפו על ידי כותרות מערכת.

[5] תוקנה בעיה מס' 31. תיקון שאושר על ידי אנדרו שאדורה, עם שינויים (הערות), עבור
שילוב קל יותר של critcl עם מערכות חבילות של מערכת הפעלה, החלפת עותקים של critcl של
כותרות Tcl עם משלהן.

[6] תוקנה בעיה מס' 32. בקשת משיכה ממוזגת מאת אנדרו שאדורה. שגיאות כתיב שונות ב
תיעוד והערות.

[7] תוקנה בעיה מס' 33. טיפול טוב יותר בקבצים המתחילים בנקודה.

מחברים


ז'אן קלוד וויפלר, סטיב לנדרס, אנדראס קופריס

השתמש ב-critcl באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad




×
פרסומת
❤️קנו, הזמינו או קנו כאן - ללא עלות, עוזר לשמור על שירותים בחינם.