2011-03-21 8 views
7

Cython tarafından üretilen kod her zaman üretildiği Python kodu kadar doğru mu?Cython doğruluk

Diğer okuyucuların Cython statik tip bildirimlerinin ve diğer Cython özelliklerinin (varsa) kullanımına hitap etmelerine yardımcı olabilirim, ancak yalnızca Python modüllerini * .pyx olarak yeniden adlandırarak Cython dosyaları oluşturmakla ilgileniyorum.

Sadece Cython'un kapsadığı Python alt kümesini umursuyorum.

cevap

10

Genel olarak, evet. Tabii bugs vardır (aslında C kodu oluşturulan yapmak pek etrafında olsa desteklenen Python alt kümesini genişletmek etrafında döner, böcek yanlış nispeten nadirdir) ve öyle görünüyor olsa da birkaç gerekli caveats (bu kısa listede yalnızca bir öğe saptırmayı o vardır Python semantiği).

Eğer o Cython olarak derlenmiş veya Python kodu olarak yayınlandığında olmadığını fark yaratıyor durumlar vardır, saf Python modunda statik türlerini eklediğinizde. İmzasız tamsayılar akla gelen (örneğin: Yukarıdaki tek linkte belirtildiği gibi n imzasız ve range(-n, n) dolayısıyla boşsa, -n etrafında kaydırılır) yanı sıra tamsayı taşması (Python abritary (long s int s (C long ler) teşvik Öncelikli tamsayılar)).

+0

Cevabınız için teşekkür ederiz. Bir uzmandan haber almak en güven verici olur; Cython projesinde çalışıyor musunuz? BTW, Cython projesinin tadını çıkarıyorum; Bulduğum başka bir aracın benim için işlevsellik sağlaması. – Brian

+1

@Brian: Hayır, Cython'a dahil olamayacak kadar müthiş bir yerim yok;) Sadece bir başka kullanıcı ve dokümantasyon öğrenciyim. Eğer devlere sormak isterseniz, en azından bir kısmı ['cython-users' postalama listesi] 'ne katılır (http://groups.google.com/group/cython-users). – delnan

+0

Bir Cython dev dosyasıyım ve Python'dan gelen herhangi bir regresyonun ciddi bir hata olarak kabul edilebileceğini söyleyebiliriz, ancak ilgili uyarıları (özellikle C tipi tamsayıları kullanan) dikkatle akılda tutulmalıdır. – robertwb