From: Stelian Ionescu Date: Mon, 12 Nov 2012 20:16:18 +0000 (+0100) Subject: Don't pass arguments to DEFALIAS forms any more X-Git-Tag: v0.8.0~32 X-Git-Url: https://repo.or.cz/w/iolib.git/commitdiff_plain/0cc82092d57c5a12e44129e38a680a869a623f1c Don't pass arguments to DEFALIAS forms any more --- diff --git a/src/base/defalias.lisp b/src/base/defalias.lisp index 0f90fc3..96bf728 100644 --- a/src/base/defalias.lisp +++ b/src/base/defalias.lisp @@ -8,11 +8,11 @@ (defvar *namespaces* nil) (defmacro defalias (alias original) - (destructuring-bind (namespace new-name &optional args) + (destructuring-bind (namespace new-name) alias (assert (member namespace *namespaces*) (namespace) "Namespace ~A does not exist" namespace) - (make-alias namespace original new-name args))) + (make-alias namespace original new-name))) (defmacro defnamespace (namespace &optional docstring) (check-type namespace symbol) @@ -22,39 +22,46 @@ (handler-bind ((warning #'muffle-warning)) (setf (documentation ',namespace 'namespace) ,docstring)))) -(defgeneric make-alias (namespace original alias args)) +(defgeneric make-alias (namespace original alias)) (defnamespace function "The namespace of ordinary and generic functions.") (defmethod make-alias ((namespace (eql 'function)) - original alias args) - `(defun ,alias ,args - (,original ,@args))) + original alias) + `(progn + (setf (fdefinition ',alias) + (fdefinition ',original)) + (setf (documentation ',alias 'function) + (documentation ',original 'function)))) (defnamespace macro "The namespace of macros.") (defmethod make-alias ((namespace (eql 'macro)) - original alias args) - (declare (ignore args)) - (alexandria:with-gensyms (args) - `(setf (macro-function ',alias) - (lambda (&rest ,args) - (apply (macro-function ',original) ,args))))) + original alias) + `(progn + (setf (macro-function ',alias) + (macro-function ',original)) + (setf (documentation ',alias 'function) + (documentation ',original 'function)))) (defnamespace special "The namespace of special variables.") (defmethod make-alias ((namespace (eql 'special)) - original alias args) - (declare (ignore args)) - `(define-symbol-macro ,alias ,original)) + original alias) + `(progn + (define-symbol-macro ,alias ,original) + (setf (documentation ',alias 'variable) + (documentation ',original 'variable)))) (defnamespace constant "The namespace of special variables.") (defmethod make-alias ((namespace (eql 'constant)) - original alias args) - (declare (ignore args)) - `(define-symbol-macro ,alias ,original)) + original alias) + `(progn + (define-symbol-macro ,alias ,original) + (setf (documentation ',alias 'variable) + (documentation ',original 'variable)))) diff --git a/src/syscalls/early.lisp b/src/syscalls/early.lisp index 2a3b5ea..a688468 100644 --- a/src/syscalls/early.lisp +++ b/src/syscalls/early.lisp @@ -149,6 +149,6 @@ ;;; CFFI additions ;;;------------------------------------------------------------------------- -(defalias (function sizeof (type)) cffi:foreign-type-size) +(defalias (function sizeof) cffi:foreign-type-size) (deffoldable sizeof (t) t)