Shed Skin là một Python-to-C ++ compiler nghiệm. Shed Skin chấp nhận các chương trình Python tinh khiết, và tạo được tối ưu hóa C ++ code. Điều này có nghĩa rằng, trong sự kết hợp với một trình biên dịch C ++, nó cho phép để dịch các chương trình Python sang ngôn ngữ máy có hiệu quả cao. Đối với một bộ 16 chương trình thử nghiệm không tầm thường, đo lường cho thấy một sự tăng tốc đặc trưng của 2-40 trên Psyco, khoảng 12 trung bình, và 2-220 trên CPython, khoảng 45 trung bình (xem mục 5 Luận văn Thạc sĩ của tôi ở bên phải ). Skin đổ cũng xuất ra mã nguồn được chú thích.
Hiệu suất cao và phương pháp tiếp cận thanh lịch của Skin Shed (nó chỉ là 6000 dòng!) Đến với chi phí. Đầu tiên, nó hiện chỉ chấp nhận các chương trình được đánh máy tĩnh. Điều này đơn giản có nghĩa là biến chỉ có thể bao giờ có một loại duy nhất. Vì vậy, ví dụ a = 1; a = '1' không được phép. Tất nhiên, một loại duy nhất có thể trừu tượng hoặc chung chung (như trong C ++), do đó ví dụ như là a = A (); a = B (), trong đó A và B có một lớp cơ sở chung, được cho phép.
Thứ hai, chương trình Python không thể hiện một cách tự do sử dụng các thư viện chuẩn của Python. Tuy nhiên, một số hàng nhập khẩu phổ biến được hỗ trợ (xem * _. Py), và nhiều người khác có thể dễ dàng thêm vào. Vấn đề là một thực tế, vì trong lý thuyết nó có thể tạo ra các ràng buộc đối với hầu hết các module thư viện. Một công việc xung quanh đơn giản có thể được biên dịch để chỉ bộ phận quan trọng của một chương trình Python, và giao tiếp với nó thông qua ví dụ tập tin và mục chuẩn và đầu ra. Bằng cách này, các chương trình chính '' có thể sử dụng các động lực Python và thư viện đầy đủ tiêu chuẩn, và toàn bộ chương trình được viết bằng Python tinh khiết.
Shed Skin vẫn là phần mềm alpha, và có một số hạn chế nhỏ, chủ yếu là tạm thời, khác. Vui lòng đọc phần hạn chế một cách cẩn thận, trước khi cố gắng để biên dịch chương trình. Điều duy nhất tôi hỏi lại để làm các phần mềm có sẵn theo GPL, là bạn gửi cho tôi một email khi bạn gặp phải một vấn đề, đó là không được liệt kê trong số những hạn chế này. Đây là cách nhanh nhất để nhận được chương trình hỗ trợ của bạn, vì tôi thường không sửa chữa vấn đề tôi không biết. Xin vui lòng cho tôi biết nếu bạn muốn tôi để thực hiện cuộc gọi thư viện nào đó
là gì mới trong phiên bản này:.
- Khả năng mở rộng một lần nữa được cải thiện rất nhiều.
- Hiệu suất của tập tin I / O và con số phức tạp đã được cải thiện rất nhiều.
- Ba module mới được hỗ trợ.
- Sáu chương trình ví dụ mới được thêm vào.
- Có nhiều sửa lỗi và cải tiến khác.
là gì mới trong phiên bản 0.8:
- Hỗ trợ được thêm vào cho các & quot; struct & quot; và & quot; & quot mảng; mô-đun.
- Ba ví dụ mới được thêm vào, với tổng số 57.
- Các ví dụ C64 đã được cập nhật, và bây giờ là hơn 3.000 dòng (sloccount).
- Một tùy chọn đã được thêm vào để hiển thị tracebacks ngoại lệ (shedskin -x).
- Nhiều lỗi đã được cố định.
là gì mới trong phiên bản 0.1:.
- Cải thiện hỗ trợ cho 'os' (UNIX)
- Việc bổ sung một bộ giải mã JPEG (1200 dòng) và một số chương trình khác để thiết lập các chương trình ví dụ. Sửa module mở rộng.
- Cải thiện cờ biên dịch dưới OS X.
- Một quan trọng sửa chữa kiểu suy luận.
- Cải thiện quá tải biến.
- cải tiến đúc.
- Sửa chữa cho setslice và delslice góc trường hợp.
- xrange trả về một đối tượng xrange, không lặp.
- Có một số sửa lỗi nhỏ.
là gì mới trong phiên bản 0.0.30:.
- Người dùng định nghĩa class hỗ trợ trong các module mở rộng
- Rất nhanh chóng thực hiện bộ (FFAO).
- Hỗ trợ số phức.
- Nhiều cải tiến định dạng chuỗi.
- Không có bản đồ để NULL thay vì 0, và in là 'Không'.
- re.match_object.group chấp nhận nhiều đối số.
- cải tiến đúc.
- Thừa kế từ ngoại lệ dựng sẵn khác hơn là ngoại lệ.
- Hashing Không nên làm việc với doanh nghiệp.
- Một quan trọng sửa chữa kiểu suy luận, và nhiều sửa lỗi khác.
là gì mới trong phiên bản 0.0.29:.
- datetime và ConfigParser hỗ trợ
- staticmethod và tài sản trang trí.
- FreeBSD, OpenSolaris và hỗ trợ 64-bit.
- GCC 4.3 sửa lỗi.
- Hỗ trợ các phím lập bản đồ ('% (key) x ..'% some_dict).
- Cải tiến cơ chế nhập khẩu. __init__ là ít hơn nhiều của một trường hợp đặc biệt bây giờ.
- Nhiều bản sửa lỗi cho phương pháp gọi tổ tiên (ví dụ như chuyên .__ init __).
- All programs dụ như bây giờ biên dịch như các module mở rộng.
- Có nhiều sửa lỗi.
Bình luận không