Checklist VHLO

Lihat vhlo.md untuk mengetahui informasi tentang VHLO.

Berkontribusi Perubahan yang Tidak Kompatibel

Semua perubahan dengan implikasi kompatibilitas harus melalui proses RFC. Hal ini termasuk menambahkan, menghentikan penggunaan, atau mengganti nama fitur. Setelah RFC-nya disetujui, langkah-langkah berikut harus diselesaikan:

1. Menambahkan Nomor Versi di Version.h dan Mengupdate Log Versi

Sebelum memperbarui operasi, atribut, jenis, atau konversi VHLO, tambahkan nomor versi minor di Version.h, dan mengupdate log versi di VhloDialect.td

Setiap fitur VHLO baru yang ditambahkan akan menggunakan versi yang ditambahkan ini, misalnya setelah menghubungi 0.10.0 --> 0.11.0, operasi baru di VhloOps.td akan menggunakan:

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

2. Tambahkan Penerapan dan Konversi VHLO yang Diperlukan

Kode yang tepat yang diperlukan untuk mengintegrasikan fitur baru akan bervariasi, tetapi untuk sebagian besar hal berikut yang harus diubah:

3. Menambahkan / Memperbarui Pengujian Unit

Kontributor perubahan yang tidak kompatibel bertanggung jawab atas pengujian unit negatif fitur, serta pengujian unit kompatibilitas.

Pengujian unit kompatibilitas melibatkan pembaruan stablehlo_legalize_to_vhlo.mlir untuk memastikan bahwa perjalanan bolak-balik StabilHLO dengan versi terbaru VHLO, serta sebagai uji kompatibilitas maju atau mundur tambahan yang diperlukan. Misalnya, jika menambahkan operasi baru pada versi X dengan Y = X - 1, tambahkan file pengujian seperti vhlo_to_version_downgrade_invalid.0_Y_0.mlir yang menunjukkan operasi tidak didukung sebelum versi X. Jika menambahkan versi baru dari sebuah operasi, tambahkan file pengujian seperti vhlo_to_version_downgrade.0_Y_0.mlir yang menunjukkan bahwa op dapat didowngrade memulai proyek.

Jika operasi Anda memiliki atribut default, sertakan pengujian yang menunjukkan bahwa nilai default-nya diserialisasi dan dideserialisasi dengan benar.

4. Menambahkan Uji Serialisasi Berversi

Setelah menambahkan pengujian ke stablehlo_legalize_to_vhlo.mlir, salin pengujian berversi dengan versi terbesar ke file baru di versi baru, dan tambahkan pengujian baru pada file tersebut. Anda juga perlu membuat menggunakan 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