The declaration specifier for functions is FTYPE, not FUNCTION.

This commit is contained in:
jjgarcia 2002-12-14 15:37:29 +00:00
parent aaa68d02a8
commit 912a7fb03c
4 changed files with 154 additions and 167 deletions

View file

@ -68,8 +68,8 @@
;;; ECL implementation:
(declaim (function si:instance-ref (t fixnum) t))
(declaim (function si:instance-set (t fixnum t) t))
(declaim (ftype si:instance-ref (t fixnum) t))
(declaim (ftype si:instance-set (t fixnum t) t))
;;; ----------------------------------------------------------------------
;;; Class CLASS

View file

@ -242,20 +242,14 @@
(if (consp (cdr decl))
(proclaim-var (second decl) (cddr decl))
(warn "The type declaration ~s is illegal." decl)))
((FIXNUM CHARACTER SHORT-FLOAT LONG-FLOAT)
(proclaim-var (car decl) (cdr decl)))
(FTYPE
(cond ((and (consp (cdr decl))
(consp (second decl)))
(eq (caadr decl) 'FUNCTION)
(consp (second decl))
(eq (caadr decl) 'FUNCTION))
(dolist (v (cddr decl))
(add-function-proclamation v (cdr (second decl)))
))
(t (cmpwarn "Bad function proclamation ~a" decl))))
(FUNCTION
(cond ((and (consp (cdr decl)))
(add-function-proclamation (second decl) (cddr decl)))
(t (cmpwarn "Bad function proclamation ~a" decl))))
(INLINE
(dolist (fun (cdr decl))
(if (symbolp fun)
@ -289,7 +283,7 @@
LONG-FLOAT NIL NULL NUMBER PACKAGE PATHNAME RANDOM-STATE RATIO RATIONAL
READTABLE SEQUENCE SHORT-FLOAT SIMPLE-ARRAY SIMPLE-BIT-VECTOR
SIMPLE-STRING SIMPLE-VECTOR SINGLE-FLOAT STANDARD-CHAR STREAM STRING
SYMBOL T VECTOR SIGNED-BYTE UNSIGNED-BYTE)
SYMBOL T VECTOR SIGNED-BYTE UNSIGNED-BYTE FUNCTION)
(proclaim-var (car decl) (cdr decl)))
(otherwise
(unless (member (car decl) *alien-declarations*)
@ -387,7 +381,7 @@
RANDOM-STATE RATIO RATIONAL READTABLE SEQUENCE SIMPLE-ARRAY
SIMPLE-BIT-VECTOR SIMPLE-STRING SIMPLE-VECTOR SINGLE-FLOAT
STANDARD-CHAR STREAM STRING SYMBOL T VECTOR
SIGNED-BYTE UNSIGNED-BYTE)
SIGNED-BYTE UNSIGNED-BYTE FUNCTION)
(let ((type (type-filter (car decl))))
(when type
(dolist (var (cdr decl))
@ -436,13 +430,6 @@
(dolist (fname (cddr decl))
(add-function-declaration
fname (cadadr decl) (cddadr decl)))))
(FUNCTION
(if (or (endp (cdr decl))
(endp (cddr decl))
(not (symbolp (second decl))))
(warn "The function declaration ~s is illegal." decl)
(add-function-declaration
(second decl) (caddr decl) (cdddr decl))))
(INLINE
(push decl dl)
(dolist (fun (cdr decl))

View file

@ -1,145 +1,145 @@
(in-package "SYSTEM")
(proclaim '(FUNCTION DEFMACRO* (T T T) T))
(proclaim '(FUNCTION DM-VL (T T T) T))
(proclaim '(FUNCTION DM-V (T T) T))
(proclaim '(FUNCTION DM-NTH (T T) T))
(proclaim '(FUNCTION DM-NTH-CDR (T T) T))
(proclaim '(FUNCTION DM-BAD-KEY (T) T))
(proclaim '(FUNCTION DM-KEY-NOT-ALLOWED (T) T))
;(proclaim '(FUNCTION FIND-DOC (T T) T))
;(proclaim '(FUNCTION FIND-DECLARATIONS (T) T))
(proclaim '(FUNCTION CLEAR-COMPILER-PROPERTIES (T) T))
(proclaim '(FUNCTION TERMINAL-INTERRUPT (T) T))
(proclaim '(FUNCTION BREAK-LEVEL (T T) T))
(proclaim '(FUNCTION TPL-MAKE-COMMAND (T T) T))
(proclaim '(FUNCTION TPL-PARSE-STRINGS (T) T))
(proclaim '(FUNCTION TPL-PRINT (T) T))
(proclaim '(FUNCTION TPL-UNKNOWN-COMMAND (T) T))
(proclaim '(FUNCTION TPL-GO (T) T))
(proclaim '(FUNCTION PRINT-IHS (T) T))
(proclaim '(FUNCTION PRINT-FRS (T) T))
(proclaim '(FUNCTION FRS-KIND (T) T))
(proclaim '(FUNCTION TPL-HIDE (T) T))
(proclaim '(FUNCTION TPL-UNHIDE (T) T))
(proclaim '(FUNCTION TPL-UNHIDE-PACKAGE (T) T))
(proclaim '(FUNCTION TPL-HIDE-PACKAGE (T) T))
(proclaim '(FUNCTION IHS-VISIBLE (T) T))
(proclaim '(FUNCTION IHS-FNAME (T) T))
(proclaim '(FUNCTION IHS-COMPILED-P (T) T))
(proclaim '(FUNCTION SUPER-GO (T T) T))
(proclaim '(FUNCTION TPL-BACKWARD-SEARCH (T) T))
(proclaim '(FUNCTION TPL-FORWARD-SEARCH (T) T))
(proclaim '(FUNCTION PROVIDE (T) T))
(proclaim '(FUNCTION DOCUMENTATION (T T) T))
(proclaim '(FUNCTION FIND-DOCUMENTATION (T) T))
(proclaim '(FUNCTION SIMPLE-ARRAY-P (T) T))
(proclaim '(FUNCTION TYPEP (T T) T))
(proclaim '(FUNCTION SUBCLASSP (T T) T))
(proclaim '(FUNCTION NORMALIZE-TYPE (T) T))
(proclaim '(FUNCTION KNOWN-TYPE-P (T) T))
(proclaim '(FUNCTION SUBTYPEP (T T) T))
(proclaim '(FUNCTION SUB-INTERVAL-P (T T) T))
(proclaim '(FUNCTION IN-INTERVAL-P (T T) T))
(proclaim '(FUNCTION MATCH-DIMENSIONS (T T) T))
(proclaim '(FUNCTION COERCE (T T) T))
(proclaim '(FUNCTION CLEAR-COMPILER-PROPERTIES (T) T))
(proclaim '(FUNCTION GET-SETF-METHOD (T) T))
(proclaim '(FUNCTION GET-SETF-METHOD-MULTIPLE-VALUE (T) T))
(proclaim '(FUNCTION SETF-EXPAND-1 (T T T) T))
(proclaim '(FUNCTION SETF-EXPAND (T T) T))
(proclaim '(FUNCTION INCREMENT-CURSOR (T T) T))
(proclaim '(FUNCTION SEQUENCE-CURSOR (T T) T))
(proclaim '(FUNCTION ARRAY-DIMENSIONS (T) T))
(proclaim '(FUNCTION VECTOR-PUSH (T T) T))
(proclaim '(FUNCTION VECTOR-POP (T) T))
(proclaim '(FUNCTION ASK-FOR-FORM (T) T))
(proclaim '(FUNCTION TYPECASE-ERROR-STRING (T T T) T))
(proclaim '(FUNCTION TYPECASE-ERROR-STRINGS (T) T))
(proclaim '(FUNCTION BOIN-P (T) T))
(proclaim '(FUNCTION MAKE-ACCESS-FUNCTION (T T T T T T T T T) T))
(proclaim '(FUNCTION MAKE-CONSTRUCTOR (T T T T T) T))
(proclaim '(FUNCTION MAKE-COPIER (T T T T) T))
(proclaim '(FUNCTION MAKE-PREDICATE (T T T T T) T))
(proclaim '(FUNCTION PARSE-SLOT-DESCRIPTION (T T) T))
(proclaim '(FUNCTION OVERWRITE-SLOT-DESCRIPTIONS (T T) T))
(proclaim '(FUNCTION SHARP-S-READER (T T T) T))
(proclaim '(FUNCTION READ-INSPECT-COMMAND (T T T) T))
(proclaim '(FUNCTION INSPECT-SYMBOL (T) T))
(proclaim '(FUNCTION INSPECT-PACKAGE (T) T))
(proclaim '(FUNCTION INSPECT-CHARACTER (T) T))
(proclaim '(FUNCTION INSPECT-NUMBER (T) T))
(proclaim '(FUNCTION INSPECT-CONS (T) T))
(proclaim '(FUNCTION INSPECT-STRING (T) T))
(proclaim '(FUNCTION INSPECT-VECTOR (T) T))
(proclaim '(FUNCTION INSPECT-ARRAY (T) T))
(proclaim '(FUNCTION INSPECT-OBJECT (T) T))
(proclaim '(FUNCTION DESCRIBE (T) T))
(proclaim '(FUNCTION INSPECT (T) T))
(proclaim '(FUNCTION ARG-LIST (T) T))
(proclaim '(FUNCTION PRIN1-TO-STRING (T) T))
(proclaim '(FUNCTION PRINC-TO-STRING (T) T))
(proclaim '(FUNCTION SHARP-A-READER (T T T) T))
(proclaim '(FUNCTION SHARP-S-READER-SI (T T T) T))
(proclaim '(FUNCTION LEAP-YEAR-P (T) T))
(proclaim '(FUNCTION NUMBER-OF-DAYS-FROM-1900 (T) T))
(proclaim '(FUNCTION ISQRT (T) T))
(proclaim '(FUNCTION ABS (T) T))
(proclaim '(FUNCTION PHASE (T) T))
(proclaim '(FUNCTION SIGNUM (T) T))
(proclaim '(FUNCTION CIS (T) T))
(proclaim '(FUNCTION ASIN (T) T))
(proclaim '(FUNCTION ACOS (T) T))
(proclaim '(FUNCTION SINH (T) T))
(proclaim '(FUNCTION COSH (T) T))
(proclaim '(FUNCTION TANH (T) T))
(proclaim '(FUNCTION ASINH (T) T))
(proclaim '(FUNCTION ACOSH (T) T))
(proclaim '(FUNCTION ATANH (T) T))
(proclaim '(FUNCTION RATIONAL (T) T))
(proclaim '(FUNCTION RATIONALIZE (T) T))
(proclaim '(FUNCTION RATIONALIZE-FLOAT (T T) T))
(proclaim '(FUNCTION LOGNAND (T T) T))
(proclaim '(FUNCTION LOGNOR (T T) T))
(proclaim '(FUNCTION LOGANDC1 (T T) T))
(proclaim '(FUNCTION LOGANDC2 (T T) T))
(proclaim '(FUNCTION LOGORC1 (T T) T))
(proclaim '(FUNCTION LOGORC2 (T T) T))
(proclaim '(FUNCTION LOGNOT (T) T))
(proclaim '(FUNCTION LOGTEST (T T) T))
(proclaim '(FUNCTION BYTE (T T) T))
(proclaim '(FUNCTION BYTE-SIZE (T) T))
(proclaim '(FUNCTION BYTE-POSITION (T) T))
(proclaim '(FUNCTION LDB (T T) T))
(proclaim '(FUNCTION LDB-TEST (T T) T))
(proclaim '(FUNCTION MASK-FIELD (T T) T))
(proclaim '(FUNCTION DPB (T T T) T))
(proclaim '(FUNCTION DEPOSIT-FIELD (T T T) T))
(proclaim '(FUNCTION FIND-ALL-SYMBOLS (T) T))
(proclaim '(FUNCTION SUBSTRINGP (T T) T))
(proclaim '(FUNCTION PRINT-SYMBOL-APROPOS (T) T))
(proclaim '(FUNCTION SEQTYPE (T) T))
(proclaim '(FUNCTION CALL-TEST (T T T T) T))
(proclaim '(FUNCTION CHECK-SEQ-TEST (T T) T))
(proclaim '(FUNCTION CHECK-SEQ-START-END (T T) T))
(proclaim '(FUNCTION CHECK-SEQ-ARGS (T T T T) T))
(proclaim '(FUNCTION LIST-MERGE-SORT (T T T) T))
(proclaim '(FUNCTION QUICK-SORT (T FIXNUM FIXNUM T T) T))
(proclaim '(FUNCTION TRACE* (T) T))
(proclaim '(FUNCTION UNTRACE* (T) T))
(proclaim '(FUNCTION TRACE-ONE (T) T))
(proclaim '(FUNCTION UNTRACE-ONE (T) T))
(proclaim '(FUNCTION TRACING-BODY (T) T))
(proclaim '(FUNCTION STEP* (T) T))
(proclaim '(FUNCTION LOOP-TEQUAL (T T) T))
(proclaim '(FUNCTION LOOP-TMEMBER (T T) T))
(proclaim '(FUNCTION LOOP-TASSOC (T T) T))
(proclaim '(FUNCTION LOOP-NAMED-VARIABLE (T) T))
(proclaim '(FUNCTION PARSE-TYPE (T) T))
(proclaim '(FUNCTION LV-BIND (T T T) T))
(proclaim '(FUNCTION LV-SET (T) T))
(proclaim '(FUNCTION MERGE-INF (T T) T))
(proclaim '(FUNCTION SET-ITERATION (T) T))
(proclaim '(FUNCTION PARSE-FOR1 (T T T T T T) T))
(proclaim '(FUNCTION PARSE-LOOP-PATH (T) T))
(proclaim '(FUNCTION GET-ACC (T) T))
(proclaim '(FUNCTION PARSE-WHEN (T) T))
(proclaim '(FTYPE DEFMACRO* (T T T) T))
(proclaim '(FTYPE DM-VL (T T T) T))
(proclaim '(FTYPE DM-V (T T) T))
(proclaim '(FTYPE DM-NTH (T T) T))
(proclaim '(FTYPE DM-NTH-CDR (T T) T))
(proclaim '(FTYPE DM-BAD-KEY (T) T))
(proclaim '(FTYPE DM-KEY-NOT-ALLOWED (T) T))
;(proclaim '(FTYPE FIND-DOC (T T) T))
;(proclaim '(FTYPE FIND-DECLARATIONS (T) T))
(proclaim '(FTYPE CLEAR-COMPILER-PROPERTIES (T) T))
(proclaim '(FTYPE TERMINAL-INTERRUPT (T) T))
(proclaim '(FTYPE BREAK-LEVEL (T T) T))
(proclaim '(FTYPE TPL-MAKE-COMMAND (T T) T))
(proclaim '(FTYPE TPL-PARSE-STRINGS (T) T))
(proclaim '(FTYPE TPL-PRINT (T) T))
(proclaim '(FTYPE TPL-UNKNOWN-COMMAND (T) T))
(proclaim '(FTYPE TPL-GO (T) T))
(proclaim '(FTYPE PRINT-IHS (T) T))
(proclaim '(FTYPE PRINT-FRS (T) T))
(proclaim '(FTYPE FRS-KIND (T) T))
(proclaim '(FTYPE TPL-HIDE (T) T))
(proclaim '(FTYPE TPL-UNHIDE (T) T))
(proclaim '(FTYPE TPL-UNHIDE-PACKAGE (T) T))
(proclaim '(FTYPE TPL-HIDE-PACKAGE (T) T))
(proclaim '(FTYPE IHS-VISIBLE (T) T))
(proclaim '(FTYPE IHS-FNAME (T) T))
(proclaim '(FTYPE IHS-COMPILED-P (T) T))
(proclaim '(FTYPE SUPER-GO (T T) T))
(proclaim '(FTYPE TPL-BACKWARD-SEARCH (T) T))
(proclaim '(FTYPE TPL-FORWARD-SEARCH (T) T))
(proclaim '(FTYPE PROVIDE (T) T))
(proclaim '(FTYPE DOCUMENTATION (T T) T))
(proclaim '(FTYPE FIND-DOCUMENTATION (T) T))
(proclaim '(FTYPE SIMPLE-ARRAY-P (T) T))
(proclaim '(FTYPE TYPEP (T T) T))
(proclaim '(FTYPE SUBCLASSP (T T) T))
(proclaim '(FTYPE NORMALIZE-TYPE (T) T))
(proclaim '(FTYPE KNOWN-TYPE-P (T) T))
(proclaim '(FTYPE SUBTYPEP (T T) T))
(proclaim '(FTYPE SUB-INTERVAL-P (T T) T))
(proclaim '(FTYPE IN-INTERVAL-P (T T) T))
(proclaim '(FTYPE MATCH-DIMENSIONS (T T) T))
(proclaim '(FTYPE COERCE (T T) T))
(proclaim '(FTYPE CLEAR-COMPILER-PROPERTIES (T) T))
(proclaim '(FTYPE GET-SETF-METHOD (T) T))
(proclaim '(FTYPE GET-SETF-METHOD-MULTIPLE-VALUE (T) T))
(proclaim '(FTYPE SETF-EXPAND-1 (T T T) T))
(proclaim '(FTYPE SETF-EXPAND (T T) T))
(proclaim '(FTYPE INCREMENT-CURSOR (T T) T))
(proclaim '(FTYPE SEQUENCE-CURSOR (T T) T))
(proclaim '(FTYPE ARRAY-DIMENSIONS (T) T))
(proclaim '(FTYPE VECTOR-PUSH (T T) T))
(proclaim '(FTYPE VECTOR-POP (T) T))
(proclaim '(FTYPE ASK-FOR-FORM (T) T))
(proclaim '(FTYPE TYPECASE-ERROR-STRING (T T T) T))
(proclaim '(FTYPE TYPECASE-ERROR-STRINGS (T) T))
(proclaim '(FTYPE BOIN-P (T) T))
(proclaim '(FTYPE MAKE-ACCESS-FUNCTION (T T T T T T T T T) T))
(proclaim '(FTYPE MAKE-CONSTRUCTOR (T T T T T) T))
(proclaim '(FTYPE MAKE-COPIER (T T T T) T))
(proclaim '(FTYPE MAKE-PREDICATE (T T T T T) T))
(proclaim '(FTYPE PARSE-SLOT-DESCRIPTION (T T) T))
(proclaim '(FTYPE OVERWRITE-SLOT-DESCRIPTIONS (T T) T))
(proclaim '(FTYPE SHARP-S-READER (T T T) T))
(proclaim '(FTYPE READ-INSPECT-COMMAND (T T T) T))
(proclaim '(FTYPE INSPECT-SYMBOL (T) T))
(proclaim '(FTYPE INSPECT-PACKAGE (T) T))
(proclaim '(FTYPE INSPECT-CHARACTER (T) T))
(proclaim '(FTYPE INSPECT-NUMBER (T) T))
(proclaim '(FTYPE INSPECT-CONS (T) T))
(proclaim '(FTYPE INSPECT-STRING (T) T))
(proclaim '(FTYPE INSPECT-VECTOR (T) T))
(proclaim '(FTYPE INSPECT-ARRAY (T) T))
(proclaim '(FTYPE INSPECT-OBJECT (T) T))
(proclaim '(FTYPE DESCRIBE (T) T))
(proclaim '(FTYPE INSPECT (T) T))
(proclaim '(FTYPE ARG-LIST (T) T))
(proclaim '(FTYPE PRIN1-TO-STRING (T) T))
(proclaim '(FTYPE PRINC-TO-STRING (T) T))
(proclaim '(FTYPE SHARP-A-READER (T T T) T))
(proclaim '(FTYPE SHARP-S-READER-SI (T T T) T))
(proclaim '(FTYPE LEAP-YEAR-P (T) T))
(proclaim '(FTYPE NUMBER-OF-DAYS-FROM-1900 (T) T))
(proclaim '(FTYPE ISQRT (T) T))
(proclaim '(FTYPE ABS (T) T))
(proclaim '(FTYPE PHASE (T) T))
(proclaim '(FTYPE SIGNUM (T) T))
(proclaim '(FTYPE CIS (T) T))
(proclaim '(FTYPE ASIN (T) T))
(proclaim '(FTYPE ACOS (T) T))
(proclaim '(FTYPE SINH (T) T))
(proclaim '(FTYPE COSH (T) T))
(proclaim '(FTYPE TANH (T) T))
(proclaim '(FTYPE ASINH (T) T))
(proclaim '(FTYPE ACOSH (T) T))
(proclaim '(FTYPE ATANH (T) T))
(proclaim '(FTYPE RATIONAL (T) T))
(proclaim '(FTYPE RATIONALIZE (T) T))
(proclaim '(FTYPE RATIONALIZE-FLOAT (T T) T))
(proclaim '(FTYPE LOGNAND (T T) T))
(proclaim '(FTYPE LOGNOR (T T) T))
(proclaim '(FTYPE LOGANDC1 (T T) T))
(proclaim '(FTYPE LOGANDC2 (T T) T))
(proclaim '(FTYPE LOGORC1 (T T) T))
(proclaim '(FTYPE LOGORC2 (T T) T))
(proclaim '(FTYPE LOGNOT (T) T))
(proclaim '(FTYPE LOGTEST (T T) T))
(proclaim '(FTYPE BYTE (T T) T))
(proclaim '(FTYPE BYTE-SIZE (T) T))
(proclaim '(FTYPE BYTE-POSITION (T) T))
(proclaim '(FTYPE LDB (T T) T))
(proclaim '(FTYPE LDB-TEST (T T) T))
(proclaim '(FTYPE MASK-FIELD (T T) T))
(proclaim '(FTYPE DPB (T T T) T))
(proclaim '(FTYPE DEPOSIT-FIELD (T T T) T))
(proclaim '(FTYPE FIND-ALL-SYMBOLS (T) T))
(proclaim '(FTYPE SUBSTRINGP (T T) T))
(proclaim '(FTYPE PRINT-SYMBOL-APROPOS (T) T))
(proclaim '(FTYPE SEQTYPE (T) T))
(proclaim '(FTYPE CALL-TEST (T T T T) T))
(proclaim '(FTYPE CHECK-SEQ-TEST (T T) T))
(proclaim '(FTYPE CHECK-SEQ-START-END (T T) T))
(proclaim '(FTYPE CHECK-SEQ-ARGS (T T T T) T))
(proclaim '(FTYPE LIST-MERGE-SORT (T T T) T))
(proclaim '(FTYPE QUICK-SORT (T FIXNUM FIXNUM T T) T))
(proclaim '(FTYPE TRACE* (T) T))
(proclaim '(FTYPE UNTRACE* (T) T))
(proclaim '(FTYPE TRACE-ONE (T) T))
(proclaim '(FTYPE UNTRACE-ONE (T) T))
(proclaim '(FTYPE TRACING-BODY (T) T))
(proclaim '(FTYPE STEP* (T) T))
(proclaim '(FTYPE LOOP-TEQUAL (T T) T))
(proclaim '(FTYPE LOOP-TMEMBER (T T) T))
(proclaim '(FTYPE LOOP-TASSOC (T T) T))
(proclaim '(FTYPE LOOP-NAMED-VARIABLE (T) T))
(proclaim '(FTYPE PARSE-TYPE (T) T))
(proclaim '(FTYPE LV-BIND (T T T) T))
(proclaim '(FTYPE LV-SET (T) T))
(proclaim '(FTYPE MERGE-INF (T T) T))
(proclaim '(FTYPE SET-ITERATION (T) T))
(proclaim '(FTYPE PARSE-FOR1 (T T T T T T) T))
(proclaim '(FTYPE PARSE-LOOP-PATH (T) T))
(proclaim '(FTYPE GET-ACC (T) T))
(proclaim '(FTYPE PARSE-WHEN (T) T))

View file

@ -13,7 +13,7 @@
(in-package "SYSTEM")
(declaim (function seqtype (t) t))
(declaim (ftype seqtype (t) t))
(defun seqtype (sequence)
(declare (si::c-local))
(cond ((listp sequence) 'list)
@ -22,14 +22,14 @@
((vectorp sequence) (list 'array (array-element-type sequence)))
(t (error "~S is not a sequence." sequence))))
(declaim (function call-test (t t t t) t))
(declaim (ftype call-test (t t t t) t))
(defun call-test (test test-not item keyx)
(declare (si::c-local))
(cond (test (funcall test item keyx))
(test-not (not (funcall test-not item keyx)))
(t (eql item keyx))))
(declaim (function test-error() t))
(declaim (ftype test-error() t))
(defun test-error()
(declare (si::c-local))
(error "both test and test are supplied"))
@ -618,7 +618,7 @@ evaluates to NIL. See STABLE-SORT."
(sort l)))
(declaim (function quick-sort (t fixnum fixnum t t) t))
(declaim (ftype quick-sort (t fixnum fixnum t t) t))
(defun quick-sort (seq start end pred key)
(declare (fixnum start end))