
Go 1.27 שוחררה: מתודות גנריות, JSON v2 וקריפטוגרפיה פוסט-קוונטית
צוות Go הוציא את Go 1.27 עם מתודות גנריות, הסקת טיפוסים רחבה יותר לפונקציות, הקצאת זיכרון מהירה יותר לאובייקטים קטנים, החבילה encoding/json/v2 וחתימות ML-DSA פוסט-קוונטיות בספרייה התקנית.
שלושה שינויים בשפה
Go 1.27 מוסיפה תמיכה במתודות גנריות. בהערות השחרור מובא הטיפוס Rand מ-math/rand/v2 כדוגמה: במקום מתודות נפרדות Int32N, Int64N ו-IntN לכל טיפוס שלם, יש כעת מתודה גנרית אחת — N[Int intType](n Int) Int.
השינוי השני: מפתח בליטרל של struct יכול כעת להיות כל בורר שדה תקף עבור אותו טיפוס, כך שאפשר לאתחל ישירות שדות במבנים מקוננים או מוטמעים — למשל לקבוע את השדה Burrow של Habitat המוטמע בתוך ליטרל של Gopher.
השלישי: הסקת טיפוסים של פונקציות הוכללה ופועלת כעת בכל הקשרי ההשמה, ולכן אפשר להשתמש בפונקציות גנריות בלי ארגומנטים טיפוסיים מפורשים בליטרלים מורכבים, בהמרות טיפוסים ובשליחה לערוץ.
כלים, זיכרון ופרופיילינג
go fix מקבל ארבעה ממודרנים חדשים — atomictypes, embedlit, slicesbackward ו-unsafefuncs. go doc תומך כעת בשאילתות package@version כמו go doc example.com/[email protected], ו-go mod tidy מאחד אוטומטית כמה בלוקי require בקובץ go.mod למבנה התקני של שני בלוקים, direct ו-indirect.
ב-runtime, הקצאת זיכרון מותאמת לגודל מפחיתה את עלות הקצאת אובייקטים קטנים מ-80 בייט בעד 30 אחוזים, מה שלפי הצוות משפר את הביצועים הכוללים בכ-1 אחוז בתוכניות עתירות הקצאות. פרופיל goroutineleak ב-runtime/pprof זמין כעת באופן כללי ומאפשר לזהות אוטומטית גורוטינות שנותרו חסומות לצמיתות.
הספרייה התקנית: JSON v2, חתימות פוסט-קוונטיות, UUID, SIMD
החבילה החדשה encoding/json/v2 מציעה עיבוד JSON ברמה גבוהה עם אפשרויות ניתנות להגדרה וברירות מחדל מחמירות יותר, בעוד encoding/json/jsontext מטפלת בזרימה ברמה נמוכה. החבילה הקיימת encoding/json מבוססת כעת על מימוש v2 לפענוח מהיר יותר ושומרת על תאימות לאחור.
crypto/mldsa מממשת את סכמת החתימה הפוסט-קוונטית ML-DSA (FIPS 204) ומשולבת ב-crypto/x509 וב-crypto/tls. חבילת uuid חדשה מוסיפה יצירה ופענוח מובנים של מזהי UUID, simd ו-simd/archsimd מספקות תמיכת SIMD ניסיונית, ו-net/http/httptest מקבלת את NewTestServer — רשת מדומה בזיכרון לשימוש עם testing/synctest.
מאיפה להוריד
ארכיונים בינאריים ומתקינים זמינים בעמוד ההורדות של Go, ורשימת השינויים המלאה נמצאת בהערות השחרור של Go 1.27. הצוות מציין כי בשבועות הקרובים יפורסמו רשומות המשך שיעמיקו בחלק מהיכולות.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.