Changeset 13533
- Timestamp:
- 08/23/11 12:48:24 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
r13526 r13533 32 32 (in-package "JVM") 33 33 34 (eval-when (:compile-toplevel :load-toplevel :execute) 35 (require "LOOP") 36 (require "FORMAT") 37 (require "CLOS") 38 (require "PRINT-OBJECT") 39 (require "COMPILER-TYPES") 40 (require "KNOWN-FUNCTIONS") 41 (require "KNOWN-SYMBOLS") 42 (require "DUMP-FORM") 43 (require "OPCODES") 44 (require "JAVA")) 45 46 47 (eval-when (:compile-toplevel :load-toplevel :execute) 48 (defun generate-inline-expansion (name lambda-list body 49 &optional (args nil args-p)) 50 "Generates code that can be used to expand a named local function inline. It can work either per-function (no args provided) or per-call." 51 (if args-p 52 (expand-function-call-inline 53 nil lambda-list 54 (copy-tree `((block ,name ,@body))) 55 args) 56 (cond ((intersection lambda-list 57 '(&optional &rest &key &allow-other-keys &aux) 58 :test #'eq) 59 nil) 60 (t 61 (setf body (copy-tree body)) 62 (list 'LAMBDA lambda-list 63 (list* 'BLOCK name body)))))) 64 ) ; EVAL-WHEN 34 (require "LOOP") 35 (require "FORMAT") 36 (require "CLOS") 37 (require "PRINT-OBJECT") 38 (require "COMPILER-TYPES") 39 (require "KNOWN-FUNCTIONS") 40 (require "KNOWN-SYMBOLS") 41 (require "DUMP-FORM") 42 (require "OPCODES") 43 (require "JAVA") 44 45 46 (defun generate-inline-expansion (name lambda-list body 47 &optional (args nil args-p)) 48 "Generates code that can be used to expand a named local function inline. 49 It can work either per-function (no args provided) or per-call." 50 (if args-p 51 (expand-function-call-inline nil lambda-list 52 (copy-tree `((block ,name ,@body))) 53 args) 54 (cond ((intersection lambda-list 55 '(&optional &rest &key &allow-other-keys &aux) 56 :test #'eq) 57 nil) 58 (t 59 (setf body (copy-tree body)) 60 (list 'LAMBDA lambda-list 61 (list* 'BLOCK name body)))))) 62 65 63 66 64 ;;; Pass 1.
Note: See TracChangeset
for help on using the changeset viewer.