2013-04-06 22 views
13

Tôi đang theo cuốn sách Yesod, trong đó nêu:GHC -ddump-măng xông tùy chọn - Mẫu Haskell

Nhưng bằng cách sử dụng tùy chọn GHC -ddump-măng xông, chúng ta có thể có được một cái nhìn ngay tại tạo mã. Một phiên bản được dọn dẹp nhiều của nó là:

Làm cách nào để làm điều này? Tôi đã cố gắng biên soạn tập tin của tôi với ghc -XTemplateHaskell -ddump-splices Page.hs, mà lá thư mục như sau:

Page Page.hi Page.hs Page.hs~ Page.o

Không ai trong số những tập tin này, tuy nhiên, chứa mã trung gian bởi Template Haskell.

http://www.yesodweb.com/book/basics

+1

Tổng số người mới ở đây - lệnh này có nghĩa là được sử dụng như thế nào? Nếu tôi chạy ghc như bạn đã viết (với helloworld.hs), tôi nhận được "Không thể tìm thấy mô-đun" Yesod "" Tôi chỉ có thể biên dịch/chạy bằng cách sử dụng 'stack runghc helloworld.hs' – Ixx

Trả lời

12

Trong khi đó hành vi thay đổi và -ddump-to-file cờ ngoài các -ddump-splices cờ gây ra các kết nối điện để được ghi vào một tập tin, xem Section 9.26 của dòng điện (GHC 8.2.1) tài liệu hướng dẫn để biết thêm chi tiết.


Mở phiên bản cũ của GHC (tôi đã không kiểm tra, trong đó phiên bản chính xác hành vi thay đổi), -ddump-splices làm việc khác nhau:

Tùy chọn -ddump-splices gây GHC để đổ các kết nối điện để stderr. Thật không may, cờ -ddump-to-file không ảnh hưởng đến chỗ nối (Tôi không biết liệu rằng có lý do sâu xa hay chỉ là một sự giám sát), vì vậy bạn cần phải nắm bắt đầu ra stderr để lưu các kết nối điện để điều tra sau,

ghc -XTemplateHaskell -ddump-splices Page.hs 2> Page.dump-splices 

trên vỏ bash giống như đầy đủ.

+1

Cảm ơn. Tại sao nó đầu ra để stderr hơn là, nói, stdout? –

+3

Tôi không biết. Có thể có một lý do, hoặc nó có thể là tai nạn lịch sử. Người ta có lẽ sẽ cần phải hỏi HQ để có câu trả lời. –

+1

Theo https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/template-haskell.html, điều này đã được thay đổi trong thời gian trung bình. Theo mặc định, nó yêu cầu kết xuất thành stdout và '-ddump-to-file' sẽ đổ vào một tệp' .dump-splices'. – robx

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