Checklist VHLO

Lihat vhlo.md untuk mengetahui informasi tentang VHLO.

Berkontribusi pada Perubahan yang Tidak Kompatibel

Semua perubahan dengan implikasi kompatibilitas harus melalui proses RFC. Hal ini mencakup penambahan, penghentian, atau penggantian nama fitur. Setelah RFC disetujui, langkah-langkah berikut harus diselesaikan:

1. Meningkatkan Nomor Versi di Version.h dan Memperbarui Log Versi

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

Setiap fitur VHLO baru yang ditambahkan akan menggunakan versi yang di-bump ini, misalnya setelah meng-bump 0.10.0 --> 0.11.0, op 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, kode berikut perlu diubah:

3. Menambahkan/Memperbarui Pengujian Unit

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

Pengujian unit kompatibilitas melibatkan pembaruan stablehlo_legalize_to_vhlo.mlir untuk memastikan bahwa StableHLO melakukan perjalanan bolak-balik dengan VHLO versi terbaru, serta pengujian 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 bahwa operasi tidak didukung sebelum versi X. Jika menambahkan versi baru op, tambahkan file pengujian seperti vhlo_to_version_downgrade.0_Y_0.mlir yang menunjukkan bahwa op dapat berhasil didowngrade.

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

4. Menambahkan Uji Serialisasi Berversi

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