Inlinec - cara baharu untuk menggunakan kod C dalam skrip Python

projek inlinec Kaedah baharu untuk penyepaduan sebaris kod C ke dalam skrip Python telah dicadangkan. Fungsi C ditakrifkan terus dalam fail kod Python yang sama, diserlahkan oleh penghias "@inlinec". Skrip ringkasan dilaksanakan seperti yang dilakukan oleh penterjemah Python dan dihuraikan menggunakan mekanisme yang disediakan dalam Python codec, yang memungkinkan untuk menyambungkan penghurai untuk mengubah skrip sebelum menghuraikannya oleh jurubahasa (sebagai peraturan, modul codec digunakan untuk transkod teks telus, tetapi ia juga membolehkan anda mengubah kandungan skrip secara sewenang-wenangnya).

Penghurai disambungkan sebagai modul ("daripada inlinec import inlinec"), yang menjalankan pemprosesan awal dan menterjemahkan takrif fungsi C dengan segera yang diserlahkan menggunakan anotasi @inlinec ke dalam pengikatan ctypes dan menggantikan badan fungsi C dengan panggilan kepada ikatan ini. Selepas transformasi sedemikian, jurubahasa Python menerima teks sumber ditukar yang betul bagi skrip, di mana fungsi C dipanggil menggunakan jenis. Kaedah yang sama juga digunakan dalam projek Pyxl4, yang membolehkan anda mencampur kod HTML dan Python dalam satu fail.

# pengekodan: inlinec
daripada inlinec import inlinec

@inlinec
ujian def():
#sertakan
ujian batal() {
printf("Hello, dunia");
}

Pembangunan setakat ini dibentangkan sebagai prototaip eksperimen, yang mengandungi kekurangan seperti kekurangan sokongan untuk menghantar penunjuk (kecuali rentetan) ke fungsi, keperluan untuk dijalankan
β€œgcc -E” untuk prapemprosesan kod, menyimpan perantaraan *.so, *.o dan *.c fail dalam direktori semasa, tidak menyimpan cache versi yang ditukar dan melaksanakan peringkat penghuraian yang tidak perlu (kelewatan yang lama setiap kali ia dijalankan).

Sumber: opennet.ru

Tambah komen