-
Pemanfaatan C-Reduce
- C-Reduce adalah alat yang dikembangkan oleh Regehr dan rekan-rekannya, digunakan untuk meminimalkan reproducer bug kompiler C.
- Misalnya, alat ini berguna saat ingin mengecilkan file C 10.000 baris yang memicu bug Clang.
- C-Reduce tidak terbatas pada bahasa C saja dan dapat diterapkan pada berbagai bahasa.
-
Persyaratan C-Reduce
- Diperlukan kondisi yang deterministik.
- Reproducer yang cepat membantu mempercepat proses reduksi.
- Diperlukan satu atau lebih file sumber yang dapat diubah dan bisa diperkecil oleh C-Reduce.
-
Kasus bug RustPython
- Untuk melaporkan bug yang terjadi di RustPython, dibuat skrip
interesting.sh.
- Skrip tersebut menjalankan RustPython lalu mencari pesan galat tertentu dengan
grep.
-
Menjalankan C-Reduce
- Dengan menjalankan C-Reduce, berhasil mengurangi ukuran file lebih dari 50%.
- Opsi
--not-c digunakan untuk menghindari pass yang khusus untuk C dan mengoptimalkannya untuk Python.
- Hasilnya, file dapat diperkecil dengan cepat dan mudah.
-
Kesimpulan
- C-Reduce dapat diterapkan pada berbagai bahasa dan berguna untuk memperkecil file dengan cepat dan efisien.
- Ini adalah blog open source; jika ada kesalahan, perubahan dapat diusulkan.
1 komentar
Komentar Hacker News
Seorang pengguna membagikan cara mereduksi file, dan menjelaskan cara menyiapkannya menggunakan RustPython dan scrapscript
git clone, lalu membangunnya dengancargo build --releaseinteresting.shdan memberikan izin eksekusinix run nixpkgs#creduceMerekomendasikan penggunaan C-Reduce, dan menyarankan untuk turut mencoba alat bernama Shrinkray
Menyebutkan bahwa makalah tentang C-Reduce dipublikasikan pada 2012
Baru mengetahui C-Reduce untuk pertama kalinya, dan merasakan ketertarikan yang sama seperti saat pertama kali menemukan git bisect
Menemukan artikel yang menunjukkan contoh C-Reduce, tetapi sulit memahami bagaimana ia menentukan apa yang harus dihapus pada setiap iterasi
Menilai C-Reduce sangat berguna
Delta debugging bukanlah konsep baru
Juga bekerja dengan baik pada SQL, dan sedang digunakan di tempat kerja
Sulit mempercayainya jika tidak ada penjelasan mengapa ini bekerja juga pada bahasa selain C
Merekomendasikan cvise sebagai penerus C-Reduce yang baik