Tôi đang viết một tập hợp các lỗ rò không gian ví dụ trong Haskell và muốn viết một bộ thử nghiệm để bắt chính mình trong trường hợp tôi chèn bất kỳ ví dụ nào thực sự không bị rò rỉ.Kiểm tra xem hàm Haskell có bị rò rỉ không gian
Có cách nào để kiểm tra các ví dụ mà không thực hiện một tệp thực thi riêng biệt cho từng mẫu không?
Neil Mitchell có một kỹ thuật rất hiệu quả và rất thấp công nghệ được mô tả trên blog của mình: [Phát hiện Space Rò rỉ ] (http: // neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html). – Cactus
Trong một số tương lai, bạn có thể kiểm tra điều này bằng cách sử dụng các máy phân tích tĩnh :) Nếu điều này có thể được chính thức hóa thì phát hiện rò rỉ không gian chỉ là vấn đề thực hiện thuật toán. – Shersh
@Cactus: Đó là một bài viết tuyệt vời. Thật không may tôi không biết nếu nó có thể bắt các trường hợp ngoại lệ được tạo ra khi bạn hết bộ nhớ (có ý nghĩa). Tôi đã thử tạo ra ngoại lệ trong một tiến trình khác với 'System.Posix.process.forkProcess' và bắt nó bằng' ClassyPrelude.catchAny', nhưng nó vẫn trượt qua và làm hỏng bộ kiểm thử. – seagreen