Inlinec - cara baru untuk menggunakan kode C dalam skrip Python

Proyek inlinec Sebuah metode baru untuk integrasi inline kode C ke dalam skrip Python telah diusulkan. Fungsi C didefinisikan secara langsung dalam file kode Python yang sama, disorot oleh dekorator “@inlinec”. Skrip ringkasan dijalankan sebagaimana adanya oleh juru bahasa Python dan diuraikan menggunakan mekanisme yang disediakan dalam Python codec, yang memungkinkan untuk menghubungkan parser untuk mengubah skrip sebelum menguraikannya oleh penerjemah (sebagai aturan, modul codec digunakan untuk transcoding teks transparan, tetapi juga memungkinkan Anda mengubah konten skrip secara sewenang-wenang).

Parser dihubungkan sebagai sebuah modul (“from inlinec import inlinec”), yang melakukan pemrosesan awal dan dengan cepat menerjemahkan definisi fungsi C yang disorot menggunakan anotasi @inlinec ke dalam pengikatan ctypes dan menggantikan isi fungsi C dengan panggilan ke ikatan ini. Setelah transformasi seperti itu, juru bahasa Python menerima teks sumber skrip yang dikonversi dengan benar, di mana fungsi C dipanggil menggunakan com.ctypes. Metode serupa juga digunakan dalam proyek ini Pyxl4, yang memungkinkan Anda mencampur kode HTML dan Python dalam satu file.

# pengkodean: inlinec
dari inlinec impor inlinec

@inlinec
tes def():
#termasuk
batalkan tes() {
printf("Halo dunia");
}

Pengembangan sejauh ini disajikan sebagai prototipe eksperimental, yang mengandung kekurangan seperti kurangnya dukungan untuk meneruskan pointer (kecuali string) ke fungsi, kebutuhan untuk menjalankan
“gcc -E” untuk pra-pemrosesan kode, menyimpan file *.so, *.o, dan *.c perantara di direktori saat ini, tidak menyimpan versi yang dikonversi ke dalam cache dan melakukan tahap penguraian yang tidak perlu (penundaan lama setiap kali dijalankan).

Sumber: opennet.ru

Tambah komentar