Changeset 11650
- Timestamp:
- 02/09/09 21:53:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11649 r11650 2071 2071 (setf g (if *compile-file-truename* 2072 2072 (declare-object-as-string symbol) 2073 (declare-object symbol ))))2073 (declare-object symbol +lisp-symbol+)))) 2074 2074 (t 2075 2075 (let ((*code* *static-code*) 2076 2076 (s (sanitize symbol))) 2077 (setf g (symbol-name (gensym )))2077 (setf g (symbol-name (gensym "SYM"))) 2078 2078 (when s 2079 2079 (setf g (concatenate 'string g "_" s))) … … 2093 2093 symbol *declared-symbols* ht g 2094 2094 (let ((*code* *static-code*)) 2095 (setf g (symbol-name (gensym )))2095 (setf g (symbol-name (gensym "KEY"))) 2096 2096 (declare-field g +lisp-symbol+) 2097 2097 (emit 'ldc (pool-string (symbol-name symbol))) … … 2107 2107 (declare-with-hashtable 2108 2108 symbol *declared-functions* ht f 2109 (setf f (symbol-name (gensym )))2109 (setf f (symbol-name (gensym "FUN"))) 2110 2110 (let ((s (sanitize symbol))) 2111 2111 (when s … … 2160 2160 (declare-with-hashtable 2161 2161 local-function *declared-functions* ht g 2162 (setf g (symbol-name (gensym )))2162 (setf g (symbol-name (gensym "LFUN"))) 2163 2163 (let* ((pathname (class-file-pathname (local-function-class-file local-function))) 2164 2164 (*code* *static-code*)) … … 2250 2250 (defknown declare-character (t) string) 2251 2251 (defun declare-character (c) 2252 (let ((g (symbol-name (gensym )))2252 (let ((g (symbol-name (gensym "CHAR"))) 2253 2253 (n (char-code c)) 2254 2254 (*code* *static-code*)) … … 2267 2267 g)) 2268 2268 2269 (defknown declare-object-as-string (t ) string)2270 (defun declare-object-as-string (obj )2271 (let* ((g (symbol-name (gensym )))2269 (defknown declare-object-as-string (t &optional t) string) 2270 (defun declare-object-as-string (obj &optional (obj-class +lisp-object+)) 2271 (let* ((g (symbol-name (gensym "OBJSTR"))) 2272 2272 (s (with-output-to-string (stream) (dump-form obj stream))) 2273 2273 (*code* *static-code*)) 2274 (declare-field g +lisp-object+)2274 (declare-field g obj-class) 2275 2275 (emit 'ldc (pool-string s)) 2276 2276 (emit-invokestatic +lisp-class+ "readObjectFromString" 2277 2277 (list +java-string+) +lisp-object+) 2278 (emit 'putstatic *this-class* g +lisp-object+) 2278 (when (string/= obj-class +lisp-object+) 2279 (emit 'checkcast obj-class)) 2280 (emit 'putstatic *this-class* g obj-class) 2279 2281 (setf *static-code* *code*) 2280 2282 g)) 2281 2283 2282 2284 (defun declare-load-time-value (obj) 2283 (let* ((g (symbol-name (gensym )))2285 (let* ((g (symbol-name (gensym "LTV"))) 2284 2286 (s (with-output-to-string (stream) (dump-form obj stream))) 2285 2287 (*code* *static-code*)) … … 2299 2301 (aver (or (structure-object-p obj) (standard-object-p obj) 2300 2302 (java:java-object-p obj))) 2301 (let* ((g (symbol-name (gensym )))2303 (let* ((g (symbol-name (gensym "INSTANCE"))) 2302 2304 (s (with-output-to-string (stream) (dump-form obj stream))) 2303 2305 (*code* *static-code*)) … … 2313 2315 2314 2316 (defun declare-package (obj) 2315 (let* ((g (symbol-name (gensym )))2317 (let* ((g (symbol-name (gensym "PKG"))) 2316 2318 (*print-level* nil) 2317 2319 (*print-length* nil) … … 2326 2328 g)) 2327 2329 2328 (declaim (ftype (function (t ) string) declare-object))2329 (defun declare-object (obj )2330 (let ((key (symbol-name (gensym ))))2330 (declaim (ftype (function (t &optional t) string) declare-object)) 2331 (defun declare-object (obj &optional (obj-class +lisp-object+)) 2332 (let ((key (symbol-name (gensym "OBJ")))) 2331 2333 (remember key obj) 2332 2334 (let* ((g1 (declare-string key)) 2333 (g2 (symbol-name (gensym))) 2335 (g2 (symbol-name (gensym "O2BJ")))) 2336 (let* ( 2334 2337 (*code* *static-code*)) 2335 (declare-field g2 +lisp-object+)2338 (declare-field g2 obj-class) 2336 2339 (emit 'getstatic *this-class* g1 +lisp-simple-string+) 2337 2340 (emit-invokestatic +lisp-class+ "recall" 2338 2341 (list +lisp-simple-string+) +lisp-object+) 2339 (emit 'putstatic *this-class* g2 +lisp-object+) 2342 (when (string/= obj-class +lisp-object+) 2343 (emit 'checkcast obj-class)) 2344 (emit 'putstatic *this-class* g2 obj-class) 2340 2345 (setf *static-code* *code*) 2341 g2))) 2346 g2)))) 2342 2347 2343 2348 (defun declare-lambda (obj) 2344 (let* ((g (symbol-name (gensym )))2349 (let* ((g (symbol-name (gensym "LAMBDA"))) 2345 2350 (*print-level* nil) 2346 2351 (*print-length* nil) … … 2362 2367 string *declared-strings* ht g 2363 2368 (let ((*code* *static-code*)) 2364 (setf g (symbol-name (gensym )))2369 (setf g (symbol-name (gensym "STR"))) 2365 2370 (declare-field g +lisp-simple-string+) 2366 2371 (emit 'new +lisp-simple-string-class+)
Note: See TracChangeset
for help on using the changeset viewer.