diff --git a/init/utility.lisp b/init/utility.lisp index a2f788443d0998fe445dc375d0a52a6883d70566..dd55b0f2f1d058d71a048012d64fae44e3eb98a6 100644 --- a/init/utility.lisp +++ b/init/utility.lisp @@ -101,3 +101,8 @@ `(if (and (fboundp ',(first test-form)) (funcall ',(first test-form) ,@(rest test-form))) (funcall ',(first then-form) ,@(rest then-form)) ,else-form)) + +(defun export-unless-cl (symbol package) + "Export symbol into package, unless package is COMMON-LISP. Needed for some implementations (ECL, CLISP) that refuse to export an already exported symbol in COMMON-LISP." + (unless (eq package (find-package 'common-lisp)) + (export symbol package))) diff --git a/input-output/parameters.lisp b/input-output/parameters.lisp index e9de6453882e513c7d3a57da2c5b28b6b2f48aac..6d29b97bebeeb28bf7e368924bc11d03db898833 100644 --- a/input-output/parameters.lisp +++ b/input-output/parameters.lisp @@ -112,7 +112,7 @@ (pushnew sym-plain syns) (ensure-package category) (pushnew (find-package category) *categories*) - (export syns (package-name (symbol-package symbol))) + (export-unless-cl syns (symbol-package symbol)) (values symbol syns)))) (defun parameter-post-definition diff --git a/input-output/readtable.lisp b/input-output/readtable.lisp index e6dfd36545ea7075e526500658a8c0b37de74e34..d3de2316fbb82dd77561d3bebcc13339579fb99b 100644 --- a/input-output/readtable.lisp +++ b/input-output/readtable.lisp @@ -23,7 +23,7 @@ (named-readtables:defreadtable :antik (:merge :standard) - #-ccl + #-(or ccl clisp) (:macro-char #\# :dispatch)) (defun set-reader (&optional (readtable t) (default-float 'double-float)) diff --git a/physical-quantities/units.lisp b/physical-quantities/units.lisp index d462a8c0d3f07d098c5da1da8c1e8d272549d34e..53b09caaeab188a2e83c76e6b34b5098de1a2b51 100644 --- a/physical-quantities/units.lisp +++ b/physical-quantities/units.lisp @@ -518,7 +518,7 @@ "Define the unit. If the definition is a number then the dimension information will be extracted from dimension." ;; Check if name/synonym is already defined. - (export unit (symbol-package unit)) + (export-unless-cl unit (symbol-package unit)) (check-unames unit synonyms) (multiple-value-bind (derived-dim conversion) (if (and dimension (numberp definition)) @@ -537,7 +537,7 @@ (print-name unit) print-name (canonical-name unit) unit) (dolist (syn synonyms) - (export syn (symbol-package syn)) + (export-unless-cl syn (symbol-package syn)) (setf (canonical-name syn) unit)))) (defun define-units (dimension unit-def-syn-pnm)