proje
Ayrıştırıcı, ilk işlemeyi gerçekleştiren ve anında @inlinec ek açıklamaları kullanılarak vurgulanan C işlevlerinin tanımlarını ctypes bağlamalarına çeviren ve C işlevinin gövdesini değiştiren bir modül olarak ("inlinec import inlinec'den") bağlanır. bu bağlamalara bir çağrı. Böyle bir dönüşümün ardından Python yorumlayıcısı, C işlevlerinin kullanılarak çağrıldığı betiğin doğru dönüştürülmüş kaynak metnini alır.
# kodlama: inlinec
inlinec'ten inlinec'i içe aktar
@inlinec
def testi():
#Dahil etmek
geçersiz test() {
printf("Merhaba dünya");
}
Geliştirme şu ana kadar deneysel bir prototip olarak sunuldu; bu, işleve işaretçilerin (dizeler hariç) aktarılması için destek eksikliği, çalıştırma ihtiyacı gibi eksiklikler içeriyor.
Kod ön işlemesi için “gcc -E”, ara *.so, *.o ve *.c dosyalarını geçerli dizine kaydetme, dönüştürülen sürümü önbelleğe almama ve gereksiz ayrıştırma aşamaları gerçekleştirme (her çalıştırıldığında uzun gecikmeler).
Kaynak: opennet.ru