- Timestamp:
- 04/23/10 21:23:02 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/less-reflection/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r12622 r12630 199 199 n))) 200 200 201 (defconstant +fasl-loader-class+ 202 "org/armedbear/lisp/FaslClassLoader") 201 203 (defconstant +java-string+ "Ljava/lang/String;") 202 204 (defconstant +java-object+ "Ljava/lang/Object;") … … 2175 2177 (setf g (symbol-name (gensym "LFUN"))) 2176 2178 (let* ((pathname (abcl-class-file-pathname (local-function-class-file local-function))) 2179 (class-name (concatenate 'string "org/armedbear/lisp/" (pathname-name pathname))) 2177 2180 (*code* *static-code*)) 2178 2181 ;; fixme *declare-inline* 2179 2182 (declare-field g +lisp-object+ +field-access-default+) 2180 (emit 'ldc (pool-string (file-namestring pathname))) 2181 (emit-invokestatic +lisp-function-proxy-class+ "loadPreloadedFunction" 2182 (list +java-string+) +lisp-object+) 2183 (emit 'new class-name) 2184 (emit 'dup) 2185 (emit-invokespecial-init class-name '()) 2186 2187 ;(emit 'ldc (pool-string (pathname-name pathname))) 2188 ;(emit-invokestatic +fasl-loader-class+ "faslLoadFunction" 2189 ;(list +java-string+) +lisp-object+) 2190 2191 ; (emit 'ldc (pool-string (file-namestring pathname))) 2192 2193 ; (emit-invokestatic +lisp-function-proxy-class+ "loadPreloadedFunction" 2194 ; (list +java-string+) +lisp-object+) 2183 2195 (emit 'putstatic *this-class* g +lisp-object+) 2184 2196 (setf *static-code* *code*) … … 2331 2343 (let ((g (symbol-name (gensym "INSTANCE"))) 2332 2344 saved-code) 2345 (sys::%format t "OBJ = ~A ~S~%" (type-of obj) obj) 2333 2346 (let* ((s (with-output-to-string (stream) (dump-form obj stream))) 2334 2347 (*code* (if *declare-inline* *code* *static-code*))) … … 5316 5329 (emit 'getstatic *this-class* 5317 5330 g +lisp-object+))))) ; Stack: template-function 5318 ((member name *functions-defined-in-current-file* :test #'equal) 5331 ((and (member name *functions-defined-in-current-file* :test #'equal) 5332 (not (notinline-p name))) 5319 5333 (emit 'getstatic *this-class* 5320 5334 (declare-setf-function name) +lisp-object+) … … 7892 7906 (compile-function-call form target representation)))) 7893 7907 7908 #|(defknown p2-java-jcall (t t t) t) 7909 (define-inlined-function p2-java-jcall (form target representation) 7910 ((and (> *speed* *safety*) 7911 (< 1 (length form)) 7912 (eq 'jmethod (car (cadr form))) 7913 (every #'stringp (cdr (cadr form))))) 7914 (let ((m (ignore-errors (eval (cadr form))))) 7915 (if m 7916 (let ((must-clear-values nil) 7917 (arg-types (raw-arg-types (jmethod-params m)))) 7918 (declare (type boolean must-clear-values)) 7919 (dolist (arg (cddr form)) 7920 (compile-form arg 'stack nil) 7921 (unless must-clear-values 7922 (unless (single-valued-p arg) 7923 (setf must-clear-values t)))) 7924 (when must-clear-values 7925 (emit-clear-values)) 7926 (dotimes (i (jarray-length raw-arg-types)) 7927 (push (jarray-ref raw-arg-types i) arg-types)) 7928 (emit-invokevirtual (jclass-name (jmethod-declaring-class m)) 7929 (jmethod-name m) 7930 (nreverse arg-types) 7931 (jmethod-return-type m))) 7932 ;; delay resolving the method to run-time; it's unavailable now 7933 (compile-function-call form target representation))))|# 7894 7934 7895 7935 (defknown p2-char= (t t t) t) … … 8862 8902 (install-p2-handler 'java:jconstructor 'p2-java-jconstructor) 8863 8903 (install-p2-handler 'java:jmethod 'p2-java-jmethod) 8904 ; (install-p2-handler 'java:jcall 'p2-java-jcall) 8864 8905 (install-p2-handler 'char= 'p2-char=) 8865 8906 (install-p2-handler 'characterp 'p2-characterp)
Note: See TracChangeset
for help on using the changeset viewer.