قائمة تحقق 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، انسخ الاختبار ذي الإصدارات. ملف يحتوي على الإصدار الأكبر في ملف جديد بالإصدار الجديد، ثم أضف اختبارات جديدة لهذا الملف أيضًا. ستحتاج أيضًا إلى إنشاء ملف شخصي مرتبط ملف بايت باستخدام 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