Changeset 8768


Ignore:
Timestamp:
Mar 13, 2008, 10:39:59 AM (11 years ago)
Author:
gb
Message:

Split RECORD-FUNCTION-INFO off from NOTE-FUNCTION-INFO, so that (a)
we don't confuse inlining with argument info and (b) we don't
have to cons up a lambda expression just to encode the lambda list.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/level-1/l1-readloop.lisp

    r8675 r8768  
    321321;  declared/proclaimed INLINE in env
    322322(defun note-function-info (name lambda-expression env)
    323   (let ((definition-env (definition-environment env)))
    324     (if definition-env
    325       (let* ((already (assq (setq name (maybe-setf-function-name name))
    326                             (defenv.defined definition-env)))
    327              (info nil))
    328         (when (lambda-expression-p lambda-expression)
    329           (multiple-value-bind (lfbits keyvect) (encode-lambda-list (cadr lambda-expression) t)
    330             (setq info (cons (cons lfbits keyvect)
    331                              (retain-lambda-expression name lambda-expression env)))))
    332           (if already
    333             (if info (%rplacd already info))
    334             (push (cons name info) (defenv.defined definition-env)))))
    335     name))
    336 
    337 ; And this is different from FUNCTION-INFORMATION.
     323  (when (lambda-expression-p lambda-expression)
     324    (multiple-value-bind (lfbits keyvect) (encode-lambda-list (cadr lambda-expression) t)
     325      (record-function-info name
     326                            (cons (cons lfbits keyvect)
     327                             (retain-lambda-expression name lambda-expression env))
     328                            env)
     329      t)))
     330
     331;;; And this is different from FUNCTION-INFORMATION.
    338332(defun retrieve-environment-function-info (name env)
    339333 (let ((defenv (definition-environment env)))
     
    345339    name))
    346340
    347 ; Must differ from -something-, but not sure what ...
     341;;; Must differ from -something-, but not sure what ...
    348342(defun note-variable-info (name info env)
    349343  (let ((definition-env (definition-environment env)))
Note: See TracChangeset for help on using the changeset viewer.