richiedono 'cl o richiedono' cl-lib


9

Per includere la compatibilità con Common Lisp ho visto entrambi

(require 'cl)

e

(require 'cl-lib)

Che è corretto? A quanto ho capito cl-libè il secondo dei due, ma è sicuro usarlo solo?

Risposte:


16

La prima è la vecchia biblioteca, la seconda è la nuova.

I vecchi si definisce cose come defstruct, symbol-macrolet, incf, mentre il secondo definisce invece cl-defstruct, cl-symbol-macrolete cl-incf.

Quello vecchio è deprecato perché non obbedisce alla regola generale che i pacchetti dovrebbero usare un "prefisso pacchetto" per tutte le loro definizioni per cercare di evitare conflitti con altri pacchetti. IOW il vecchio confonde lo spazio dei nomi mentre il nuovo è attento a usare solo identificatori che iniziano con cl-.

Vengono fornite solo vecchie versioni di Emacs clma è possibile installare il cl-libpacchetto di compatibilità diretta da GNU ELPA che utilizza internamente il vecchio cle riesporta semplicemente le stesse definizioni con il loro nuovo nome.

Le nuove versioni di Emacs hanno un reale cl-libche non utilizza clinternamente e invece hanno un clpacchetto di retrocompatibilità che utilizza internamente cl-libe riesporta semplicemente le stesse definizioni con il loro vecchio nome.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.