mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-15 22:01:36 -08:00
ECL accepts FTYPE proclamations for SETF-functions.
This commit is contained in:
parent
5c25fc1f5f
commit
9d1b7c8f7d
3 changed files with 8 additions and 6 deletions
|
|
@ -37,6 +37,8 @@ ECL 10.2.1:
|
|||
in B, then ECL signaled an error in the compiled version of A even after
|
||||
this one had required B.lsp.
|
||||
|
||||
- ECL accepts FTYPE proclamations for SETF-functions.
|
||||
|
||||
* Visible changes:
|
||||
|
||||
- Significant speedup in access to hash tables of up to 30% by writing
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
(t (type-filter (car return-types)))))
|
||||
|
||||
(defun add-function-proclamation (fname decl)
|
||||
(if (symbolp fname)
|
||||
(if (si:valid-function-name-p fname)
|
||||
(let* ((arg-types '*)
|
||||
(return-types '*)
|
||||
(l decl))
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
(t (c-types:type-filter (car return-types)))))
|
||||
|
||||
(defun add-function-proclamation (fname decl)
|
||||
(if (symbolp fname)
|
||||
(if (si:valid-function-name-p fname)
|
||||
(let* ((arg-types '*)
|
||||
(return-types '*)
|
||||
(l decl))
|
||||
|
|
@ -59,11 +59,11 @@
|
|||
(t (warn "The function proclamation ~s ~s is not valid."
|
||||
fname decl)))
|
||||
(if (eq arg-types '*)
|
||||
(sys:rem-sysprop fname 'PROCLAIMED-ARG-TYPES)
|
||||
(sys:put-sysprop fname 'PROCLAIMED-ARG-TYPES arg-types))
|
||||
(rem-sysprop fname 'PROCLAIMED-ARG-TYPES)
|
||||
(put-sysprop fname 'PROCLAIMED-ARG-TYPES arg-types))
|
||||
(if (eq return-types '*)
|
||||
(sys:rem-sysprop fname 'PROCLAIMED-RETURN-TYPE)
|
||||
(sys:put-sysprop fname 'PROCLAIMED-RETURN-TYPE return-types)))
|
||||
(rem-sysprop fname 'PROCLAIMED-RETURN-TYPE)
|
||||
(put-sysprop fname 'PROCLAIMED-RETURN-TYPE return-types)))
|
||||
(warn "The function proclamation ~s ~s is not valid." fname decl)))
|
||||
|
||||
(defun add-function-declaration (fname arg-types return-types env)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue