
إصدار Go 1.27: دوال عامة وJSON v2 وتشفير ما بعد الكم
أصدر فريق Go الإصدار 1.27 الذي يضم الدوال العامة، واستنتاجًا أوسع لأنواع الدوال، وتسريع تخصيص الأجسام الصغيرة، وحزمة encoding/json/v2 وتوقيعات ML-DSA لما بعد الكم في المكتبة القياسية.
ثلاثة تغييرات في اللغة
يضيف Go 1.27 دعمًا للدوال العامة (generic methods). وتستشهد ملاحظات الإصدار بنوع 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.
وفي زمن التشغيل، يخفض التخصيص المتخصص حسب الحجم كلفة تخصيص الأجسام الأصغر من 80 بايت بما يصل إلى 30 بالمئة، وهو ما يقول الفريق إنه يحسّن الأداء العام بنحو 1 بالمئة في البرامج كثيفة التخصيص. كما أصبح ملف goroutineleak في runtime/pprof متاحًا عمومًا، ويتيح كشف الـgoroutines المحجوبة نهائيًا تلقائيًا.
المكتبة القياسية: 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 — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.