yêu cầu 'cl hoặc yêu cầu' cl-lib


9

Để bao gồm khả năng tương thích Lisp chung, tôi đã thấy cả hai

(require 'cl)

(require 'cl-lib)

Cái nào đúng? Theo tôi hiểu cl-liblà phần sau của hai người, nhưng liệu có an toàn khi sử dụng không?

Câu trả lời:


16

Thứ nhất là thư viện cũ, thứ hai là thư viện mới.

Cũ một định nghĩa điều thích defstruct, symbol-macrolet, incf, trong khi định nghĩa thứ hai thay cl-defstruct, cl-symbol-macroletcl-incf.

Cái cũ không được chấp nhận vì nó không tuân theo quy tắc chung rằng các gói nên sử dụng "tiền tố gói" cho tất cả các định nghĩa của chúng để thử và tránh xung đột với các gói khác. IOW cái cũ làm rối không gian tên trong khi cái mới cẩn thận chỉ sử dụng các định danh bắt đầu bằng cl-.

Các phiên bản cũ của Emacs chỉ đi kèm clnhưng bạn có thể cài đặt cl-libgói tương thích chuyển tiếp từ GNU ELPA, bên trong sử dụng nội bộ cũ clvà chỉ xuất lại các định nghĩa tương tự dưới tên mới của chúng.

Các phiên bản mới của Emacs đi kèm với một thực tế cl-libkhông sử dụng clnội bộ và thay vào đó chúng có clgói tương thích ngược sử dụng nội bộ cl-libvà chỉ tái xuất các định nghĩa tương tự dưới tên cũ của chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.