2014-04-13 14 views
5

Có cách nào để tạo chương trình dòng lệnh ở chế độ nghiêm ngặt của Hack không? Vì chế độ nghiêm ngặt của Hack không cho phép các câu lệnh bên ngoài một hàm tôi không thể gọi hàm main của mình.Chương trình dòng lệnh Hacklang ở chế độ nghiêm ngặt

(Điều này là khá một câu hỏi lý thuyết vì nó rất dễ dàng để phá vỡ các vấn đề bằng việc có một tập tin không nghiêm ngặt để gọi hàm main.)

+1

Câu hỏi hay, tôi mới bắt đầu hack từ CLI và đây là câu hỏi đầu tiên tôi có. – robbmj

Trả lời

5

Hiện không thể viết một chương trình dự án (dòng lệnh hoặc nếu không) 100% trong chế độ Hack nghiêm ngặt do giới hạn này. Bạn thực sự sẽ cần phải có một số mã bootstrap trong toplevel ("pseudomain"), mà nghiêm ngặt hiện nay chỉ không cho phép. Lý do cho điều này là mã toplevel về cơ bản là không thể đánh máy tĩnh, vì mọi thứ là toàn cầu và có thể được thay đổi đằng sau hậu trường bất kỳ lúc nào bằng bất kỳ mã nào. Tuy nhiên, kết quả cuối cùng là ngớ ngẩn và một cái gì đó chúng tôi muốn sửa chữa cuối cùng - có, ví dụ, không có lý do để ngăn chặn một cuộc gọi duy nhất đến một chức năng không có tham số, tức là, chính xác những gì bạn cần ngay lập tức nhận ra pseudomain và vào một hàm.

+2

Cảm ơn câu trả lời. "một cuộc gọi đến một hàm không có tham số" - Lưu ý rằng tôi cũng cần phải chuyển $ argv. – Csq

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