2010-06-17 17 views
10

Tôi đang xem xét việc di chuyển một chương trình hiện đang nhúng trình thông dịch Python để sử dụng Lua. Với Python nó khá dễ sử dụng modulefinder, compileallzipfile để tạo một zip gọn gàng đẹp chứa tất cả các thư viện bên ngoài được sử dụng.Cách tốt nhất để phân phối Lua và thư viện là gì?

Lua có khả năng gộp các thư viện của nó như vậy hay không, hoặc có cách nào tốt hơn để phân phối các chương trình nhúng Lua?

Trả lời

8

Như điển hình với Lua, không có tiêu chuẩn nào và rất nhiều người tự cuộn. Có một nỗ lực để tiêu chuẩn hóa trên một hệ thống quản lý gói được gọi là Lua Rocks, nhưng tôi không chắc có bao nhiêu động lực đằng sau nó hoặc nó trưởng thành như thế nào. (Trong năm 2008 nó không hoàn toàn sẵn sàng cho thời gian chính, nhưng mọi thứ có thể đã thay đổi.)

Bản thân tôi là công nghệ rất thấp: nếu tôi muốn phân phối một cái gì đó, tôi chỉ chuyển nguồn Lua của tôi thành các tệp C và liên kết chúng trong với nhị phân. Việc tìm kiếm và chuyển đổi tất cả các mô-đun có thể hơi tẻ nhạt đối với tôi, nhưng điều khá dễ dàng nhất đối với người dùng của tôi — họ thậm chí không cần biết rằng Lua có liên quan. Tôi đã đăng một số copy of my lua2c script tại Pastebin. Tôi có tùy chọn biên dịch nhưng tôi thường không biên dịch vì kết quả không được di chuyển và vì trình biên dịch Lua quá nhanh.

Sẽ tốt hơn nếu có thứ gì đó tự động hơn. Tôi nghĩ có thể mất vài ngày để viết và gỡ lỗi một công cụ tốt.

Mọi người trên số Lua mailing list chắc chắn sẽ biết nhiều hơn.

+0

Tôi ước tôi có thể upvote điều này một lần nữa để bao gồm một liên kết đến mã nguồn. – chicks

4

Nếu đó là tinh khiết Lua, bạn cũng có thể xem xét sử dụng squish

Đó là một công cụ cho gói tất cả các file nguồn Lua thành một file duy nhất, với các tùy chọn để gzip/rút gọn nó.

+0

Để rút gọn mã Lua, bạn cũng có thể sử dụng ['luamin'] (http://mths.be/luamin) có sẵn dưới dạng nhị phân để sử dụng trong các kịch bản lệnh shell và làm mô-đun npm. Bản trình diễn trực tuyến: http://mothereff.in/lua-minifier –