אנגליתצרפתיתספרדי

Ad


סמל OnWorks

critcl - מקוון בענן

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

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

תָכְנִית:

שֵׁם


critcl - יישום CriTcl

תַקצִיר


critcl ?אוֹפְּצִיָה...? ?פילה...

_________________________________________________________________

תיאור


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

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

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

*=================*
|יישומים |
| critcl |
| critcl::app |
*=================*

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

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

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

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

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


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

-v

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כאשר אפשרות זו מצוינת, שם הבסיס של ארגומנט הקובץ הראשון אחרי ה-
options משמש כשם החבילה להפקה. אם ההרחבה של זה
הקובץ מציין ספרייה משותפת (".לכן"".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
+- license.terms (אופציונלי)
|
+- tcl (אופציונלי)
| +-
|
+-
+-

הערות

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

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

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

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

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

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

+- pkgIndex.tcl
+- critcl-rt.tcl
+- license.terms (אופציונלי)
|
+- tcl (אופציונלי)
| +-
|
+-
| +-
+-
| +-
+-
+-

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[22] חשף את פנימיות עיבוד הטיעונים של critcl::proc לשימוש מתקדמים
משתמשים. הפקודות החדשות הן

[1] critcl::argnames

[2] critcl::argcnames

[3] critcl::argcsignature

[4] critcl::argvardecls

[5] critcl::argconversion

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

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

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

[25] נשמט -לב מצב מאפליקציית critcl.

[26] נפלו שרידי תמיכה ב-Tcl 8.3 ואילך.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


[1] תיקוני באגים מסביב. בפירוט:

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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


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

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

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


[1] תוקנה בעיית github 10. אפליקציית 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. המשתמש יכול להתרכז בנתונים שלו תוך כדי
כל קוד ה-boilerplate C הדרוש כדי לתמוך בכך נוצר על ידי החבילה.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


[1] תיקוני באגים מסביב. בפירוט:

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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


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

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

במסגרת זו חתימת הפקודה critcl::name2c השתנה. הפקודה עכשיו
מספק רשימה של ארבעה ערכים במקום שלושה. הערך החדש התווסף ב-
הסוף.

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

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

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

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


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

[2] תכונה חדשה. וו פלט. כל פלט המשתמש ללא הודעות מנותב כעת דרך
הפקודה critcl::print, ומשתמשים רשאים לעקוף אותו בעת שימוש ב-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 עם מערכות חבילות OS, תוך החלפת עותקים של critcl
כותרות Tcl עם כותרות משלהן.

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

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

מחברים


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

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


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

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

  • 1
    Phaser
    Phaser
    Phaser היא פתיחה מהירה, חינמית ומהנה
    מסגרת משחק מקור HTML5 שמציעה
    עיבוד WebGL ו-Canvas לרוחב
    דפדפני אינטרנט שולחניים וניידים. משחקים
    יכול להיות שותף...
    הורד את Phaser
  • 2
    מנוע VASSAL
    מנוע VASSAL
    VASSAL הוא מנוע משחק ליצירה
    גרסאות אלקטרוניות של לוח מסורתי
    ומשחקי קלפים. זה מספק תמיכה עבור
    עיבוד ואינטראקציה של חלקי משחק,
    ו...
    הורד את VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF היא ספריית Java ליצירה
    ועריכת קבצי PDF עם LGPL ו
    רישיון קוד פתוח MPL. OpenPDF הוא ה
    יורש הקוד הפתוח LGPL/MPL של iText,
    ...
    הורד את OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - מערכת לאוטומטיות
    ניתוחים גיאוגרפיים - הוא גיאוגרפי
    תוכנת מערכת מידע (GIS) עם
    יכולות עצומות לגיאודטה
    עיבוד ואנה...
    הורד את SAGA GIS
  • 5
    ארגז כלים עבור Java/JTOpen
    ארגז כלים עבור Java/JTOpen
    ארגז הכלים של IBM עבור Java / JTOpen הוא א
    ספריית מחלקות Java התומכות ב
    תכנות לקוח/שרת ואינטרנט
    דגמים למערכת עם OS/400,
    i5/OS, o...
    הורד את ארגז הכלים עבור Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (או D3 עבור מסמכים מבוססי נתונים)
    היא ספריית JavaScript המאפשרת לך
    לייצר נתונים דינמיים ואינטראקטיביים
    הדמיות בדפדפני אינטרנט. עם D3
    אתה...
    הורד את D3.js
  • עוד »

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

Ad