قائمة تحقق VHLO

يُرجى الاطّلاع على vhlo.md للحصول على معلومات عن VHLO.

المساهمة بتغييرات غير متوافقة

يجب أن تخضع جميع التغييرات التي لها تأثير في التوافق لعملية RFC. ويشمل ذلك إضافة ميزة أو إيقافها نهائيًا أو إعادة تسميتها. بعد الموافقة على RFC، يجب إكمال الخطوات التالية:

1. رفع رقم الإصدار في Version.h وتعديل سجلّ الإصدار

قبل تعديل عمليات VHLO أو السمات أو الأنواع أو الإحالات الناجحة، عليك زيادة رقم الإصدار الثانوي في Version.h، وتعديل سجلّ الإصدار في VhloDialect.td.

ستستخدم أي ميزات جديدة من VHLO تمت إضافتها هذا الإصدار الذي تم تعديله، على سبيل المثال، بعد تعديل 0.10.0 --> 0.11.0، سيستخدم إجراء جديد في VhloOps.td ما يلي:

VHLO_Op<"abs_v2", "0.11.0", "current">

2. إضافة عمليات تنفيذ VHLO المطلوبة والإحالات الناجحة

سيختلف الرمز البرمجي الدقيق المطلوب لدمج ميزة جديدة، ولكن في معظمه، يجب تغيير ما يلي:

3- إضافة / تعديل اختبارات الوحدات

يكون المساهم في التغيير غير المتوافق مسؤولاً عن اختبارات الوحدات الإيجابية والسلبية للميزة، بالإضافة إلى اختبارات الوحدات للتوافق.

يتضمن اختبار وحدة التوافق تحديث stablehlo_legalize_to_vhlo.mlir لضمان إجراء رحلات ذهاب وعودة من StableHLO باستخدام أحدث إصدار من VHLO، بالإضافة إلى أي اختبارات إضافية مطلوبة للتوافق للأمام أو للخلف. على سبيل المثال، في حال إضافة عملية جديدة في الإصدار X باستخدام Y = X - 1، أضِف ملف اختبار مثل vhlo_to_version_downgrade_invalid.0_Y_0.mlir يُظهر أنّ العملية غير متوافقة قبل الإصدار X. في حال إضافة إصدار جديد من عملية، أضِف ملفًا تجريبيًا مثل vhlo_to_version_downgrade.0_Y_0.mlir يُظهر أنّه يمكن الرجوع إلى إصدار سابق من العملية بنجاح.

إذا كان الأمر يتضمن سمات افتراضية، قم بتضمين اختبارات توضح أن الإعدادات الافتراضية متسلسلة وإلغاء تسلسلها بشكل صحيح.

4. إضافة اختبار التسلسل المحدّد

بعد إضافة الاختبارات إلى stablehlo_legalize_to_vhlo.mlir، انسخ ملف الاختبار الذي يتضمّن الإصدارات والذي يتضمّن أكبر إصدار إلى ملف جديد بالإصدار الجديد، وأضِف الاختبارات الجديدة إلى هذا الملف أيضًا. ستحتاج أيضًا إلى إنشاء ملف bytecode مرتبط باستخدام stablehlo-translate:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc