2014-09-08 13 views
5

Trong thử nghiệm tích hợp liên tục cho gói emacs của tôi fsharp-mode, tôi đang thêm biên dịch byte vào thử nghiệm để có phản hồi ngay lập tức. Tôi đang sử dụng gần:Làm thế nào để tạo lỗi cảnh báo biên dịch byte Emacs

emasc -batch batch-byte-compile *.el 

Điều này trả về khác 0 nếu có lỗi, nhưng không phải chỉ là cảnh báo. Tôi cũng muốn được cảnh báo nếu có bất kỳ cảnh báo nào vì điều này có thể bao gồm các cuộc gọi đến các chức năng không xác định (đã xảy ra trước đó nhờ lỗi đánh máy).

Vì vậy: làm cách nào để có được mã trả về khác 0 trong trường hợp cảnh báo biên dịch?

+4

Bạn đã thử 'byte-compile-error-on-warn' chưa? – Lindydancer

+0

Tôi hiện có, cảm ơn. Có vẻ hiển nhiên, nhưng tôi không thể tìm thấy nó trong sách hướng dẫn. – rneatherway

Trả lời

5

Bạn có thể đặt byte-compile-error-on-warn đến một giá trị không phải là con số không, như trong:

$ emacs -Q --batch \ 
    --eval '(setq byte-compile-error-on-warn t)' \ 
    -f batch-byte-compile *.el 

Trình biên dịch byte tại dừng lại ở cảnh báo đầu tiên, tuy nhiên, vì vậy bạn nên thiết lập này không bắt buộc trong Makefile của bạn, và chỉ sử dụng nó trong thiết lập CI của bạn.

Nếu bạn cần kiểm soát phức tạp hơn thế, bạn phải viết bộ xử lý sau của riêng mình, ví dụ: một kịch bản Python phân tích đầu ra của trình biên dịch byte và điều chỉnh mã thoát và/hoặc đầu ra tương ứng, hoặc viết biến thể batch-byte-compile của riêng bạn mà xử lý phức tạp hơn.

+0

Cảm ơn rất nhiều. Có vẻ hiển nhiên, nhưng tôi không thể tìm thấy nó trong sách hướng dẫn. – rneatherway

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