Changeset 11787
 Timestamp:
 04/26/09 07:12:21 (14 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/abcl/src/org/armedbear/lisp/precompiler.lisp
r11786 r11787 354 354 (declaim (ftype (function (t) t) precompile1)) 355 355 (defun precompile1 (form) 356 ;; (sys::%format t "~S~%" form)357 356 (cond ((symbolp form) 358 357 (let ((varspec (findvarspec form))) … … 598 597 (setq lambdalist (subseq lambdalist 0 (position '&AUX lambdalist))) 599 598 (multiplevaluebind (lambdadecls letdecls) 600 (rewriteauxvarsprocessdecls decls (lambdalistnames lambdalist) auxvars) 601 `(lambda ,lambdalist ,@lambdadecls (let* ,lets ,@letdecls ,@body)))))) 602 603 # 604 (defun splitdeclarations (relatedsymbols decls) 605 "Splits IGNORE, IGNORABLE, DYNAMICEXTENT, TYPE, FTYPE and <typespecifier> 606 into the declarations related to `relatedsymbols' and the rest." 607 ;; IGNORE, IGNORABLE and DYNAMICEXTENT have the same format 608 (let (relateddecls otherdecls) 609 (dolist (declform decls) 610 (dolist (decl (cdr declform)) 611 (case (car decl) 612 ((IGNORE IGNORABLE DYNAMICEXTENT SPECIAL) 613 (let (rel oth) 614 615 ...) 616 ((TYPE FTYPE) ;; FUNCTION? 617 ...) 618 ((INLINE NOTINLINE OPTIMIZE DECLARATION) 619 (push decl otherdecls)) 620 (t 621 (if (symbolp (car decl)) ;; a type specifier 622 ... 623 (push decl otherdecls)))))) 624 (values relateddecls otherdecls))) 625 # 599 (rewriteauxvarsprocessdecls decls 600 (lambdalistnames lambdalist) 601 auxvars) 602 `(lambda ,lambdalist 603 ,@lambdadecls 604 (let* ,lets 605 ,@letdecls 606 ,@body)))))) 626 607 627 608 (defun mayberewritelambda (form) … … 689 670 (defun precompilelambda (form) 690 671 (setq form (mayberewritelambda form)) 691 ;; (sys::%format t "~S~%" form)692 672 (let ((body (cddr form)) 693 673 (*inlinedeclarations* *inlinedeclarations*))
Note: See TracChangeset
for help on using the changeset viewer.