Tôi muốn kiểm tra việc triển khai tối ưu hóa trình biên dịch bằng cách đưa vào quá trình biên dịch GHC và thay đổi biểu diễn Core của nó. Ý tưởng sẽ có một cái gì đó như:Có thể sử dụng API GHC để sửa đổi chương trình trong khi biên dịch chương trình không?
runGhc (Just libdir) $ do
...
c <- compileToCoreModule targetFile
compileCoreToObj False (modify c)
...
trong đó modify
lấy biểu diễn lõi và trả về phiên bản đã sửa đổi. mã này, tuy nhiên, thất bại (ngay cả khi modify làm gì cả) với thông điệp không phải là rất hữu ích:
expectJust mkStubPaths
Bất kỳ ý tưởng về làm thế nào để làm cho công việc này, hoặc nếu nó thậm chí còn có thể thực hiện một chuyển đổi code theo cách này ?
Tôi đã do dự khi báo cáo vì tôi không chắc liệu tôi có đang sử dụng các chức năng chính xác không. Có bất kỳ ví dụ nào về các loại biến đổi này không? – matiash
Tôi không biết bất kỳ ví dụ cụ thể nào, không. –
Có bất kỳ tiến triển nào với vấn đề này không? Tôi đã thử ngày hôm nay chính xác cùng một mã và nó dẫn đến thông báo lỗi tương tự. –