2011-03-21 43 views
7

Mã được sản xuất bởi Cython luôn đúng như mã Python được tạo ra từ?Độ chính xác của Cython

Nó có thể giúp người đọc khác giải quyết việc sử dụng khai báo kiểu tĩnh Cython và các tính năng Cython khác (nếu có), mặc dù tôi chỉ quan tâm đến trường hợp tạo tệp Cython bằng cách đổi tên mô-đun Python thành * .pyx.

Tôi chỉ quan tâm đến tập hợp con của Python được Cython bao trả.

Trả lời

10

Nói chung, có. Tất nhiên có bugs (nhiều xoay quanh việc mở rộng tập con Python được hỗ trợ mặc dù, các lỗi thực sự tạo ra mã C không chính xác là tương đối hiếm), và có một số cần thiết caveats (mặc dù có vẻ như chỉ có một mục trong danh sách ngắn đó chuyển hướng từ Ngữ nghĩa Python).

Khi bạn thêm các loại tĩnh ở chế độ Python thuần túy, có những trường hợp nó tạo sự khác biệt cho dù nó được biên dịch là Cython hay chạy dưới dạng mã Python. Các số nguyên chưa được ghi nhớ (ví dụ: như đã đề cập trong một liên kết ở trên, -n sẽ quấn quanh nếu n không được ký và range(-n, n) là trống), cũng như tràn số nguyên (Python quảng bá int s (C long s) tới long s (mất vệ sinh) số nguyên)

+0

Cảm ơn câu trả lời của bạn. Nó sẽ là yên tâm nhất để nghe từ một chuyên gia; Bạn có làm việc trên dự án Cython không? BTW, tôi thích dự án Cython; nó cung cấp chức năng cho tôi mà không có công cụ nào khác mà tôi đã tìm thấy. – Brian

+1

@Brian: Không, tôi không có nơi nào đủ tuyệt vời để tham gia vào Cython;) Tôi chỉ là một người dùng và sinh viên khác của tài liệu. Nếu bạn muốn hỏi các nhà phát triển, ít nhất một số người trong số họ tham gia vào danh sách gửi thư [cython-users'] (http://groups.google.com/group/cython-users). – delnan

+0

Tôi là một Cython dev, và có thể nói rằng bất kỳ hồi quy từ Python sẽ được coi là một lỗi nghiêm trọng, mặc dù các caveats liên kết (đáng chú ý nhất bằng cách sử dụng một cách rõ ràng C gõ số nguyên) nên được lưu ý. – robertwb

Các vấn đề liên quan