Go 1.19 כבר שוחרר ואלה החדשות שלו

לאחרונה הוכרזה שחרור הגרסה החדשה של שפת התכנות «Go 1.19»., גרסה המשתפרת מהגרסה הקודמת ע"י הוספת שיפורים שונים ובעיקר תיקוני באגים. מהחידושים שנוכל להדגיש הם השיפורים בניהול זיכרון, שיפורי אבטחה, בין היתר.

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

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

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

התכונות החדשות העיקריות של Go 1.19

בגרסה החדשה הזו של Go 1.19 שמוצגת, מודגש כי נעשתה עבודה כדי לחדד את התמיכה בפונקציות ובסוגים גנריים נוספה בגרסה העדכנית ביותר, בעזרתה המפתח יכול להגדיר ולהשתמש בפונקציות המיועדות לעבודה עם מספר סוגים בו-זמנית, ובנוסף אופטימיזציית הביצועים של חלק מהתוכניות באמצעות גנריות הוגדלה ב-20%.

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

חוץ מזה מודל זיכרון Go מתוקן להתיישר עם C, C++, Java, JavaScript, Rust ו- Swift שאינם מודים בערכים אטומיים עקביים ברצף. סוגים חדשים כמו atomic.Int64 ו-atomic.Pointer[T] הוצגו בחבילת הסינכרון/אטומי כדי להקל על השימוש בערכים אטומיים.

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

זה גם מודגש במערכות Unix, מתארי קבצים נוספים מופעלים אוטומטית (הגדלת מגבלת RLIMIT_NOFILE), כדי להאיץ ביטויי שינויים גדולים במערכות x86-64 ו-ARM64, נעשה שימוש בטבלאות קפיצה, המאפשרות לעבד ביטויי שינויים גדולים עד 20% מהר יותר.

במערכות riscv64 יושמה העברת ארגומנטים של פונקציות דרך אוגרי CPU, מה שאיפשר עליית ביצועים של כ-10%.

משאר השינויים הבולטים מהגרסה החדשה הזו:

  • אופטימיזציות רבות של ביצועים יושמו.
  • נוספה תמיכה להגדרה דינמית של גודל המחסנית השגרתית כדי להקטין את גודל הנתונים שהועתקו
  • נוספה תמיכה ניסיונית בסביבות לינוקס במערכות עם מעבדי Loongson המבוססים על ארכיטקטורת LoongArch של 64 סיביות (GOARCH=loong64).
  • שינוי מודל הזיכרון לא השפיע על התאימות לקוד שנכתב בעבר.
  • נוספה הגבלת בנייה חדשה של "unix" שניתן להשתמש בה בקווי "go:build" כדי לסנן מערכות דמויות יוניקס (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • כדי לשפר את האבטחה, מודול OS/exec מתעלם כעת מנתיבים יחסיים בעת הרחבת משתנה הסביבה PATH (לדוגמה, בעת קביעת הנתיב של קובץ הפעלה, הספרייה הנוכחית אינה מסומנת עוד).

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.