Changeset 5054
- Timestamp:
- Aug 28, 2006, 4:34:02 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/xdump/xfasload.lisp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/xdump/xfasload.lisp
r4387 r5054 796 796 (defun %xload-fasl-vreadstr (s) 797 797 (multiple-value-bind (str n new-p) (%fasl-vreadstr s) 798 (declare (fixnum n subtype)) 799 (values (xload-save-string str n) str n new-p))) 800 801 ;;; Read a string from fasl file, save it to readonly-space. 802 ;;; (assumes variable-length encoding.) 803 (defun %xload-fasl-nvreadstr (s) 804 (multiple-value-bind (str n new-p) (%fasl-nvreadstr s) 798 805 (declare (fixnum n subtype)) 799 806 (values (xload-save-string str n) str n new-p))) … … 1148 1155 (%epushval s sym))) 1149 1156 1157 (defun %xload-fasl-nvmake-symbol (s &optional idx) 1158 (let* ((sym (xload-make-symbol (%xload-fasl-nvreadstr s)))) 1159 (when idx 1160 (xload-ensure-binding-index sym)) 1161 (%epushval s sym))) 1162 1150 1163 1151 1164 … … 1170 1183 (%epushval s symaddr)))))) 1171 1184 1185 (defun %xload-fasl-nvintern (s package &optional idx) 1186 (multiple-value-bind (str len new-p) (%fasl-nvreadstr s) 1187 (without-interrupts 1188 (multiple-value-bind (cursym access internal external) (%find-symbol str len package) 1189 (unless access 1190 (unless new-p (setq str (%fasl-copystr str len))) 1191 (setq cursym (%add-symbol str package internal external))) 1192 ;; cursym now exists in the load-time world; make sure that it exists 1193 ;; (and is properly "interned" in the world we're making as well) 1194 (let* ((symaddr (xload-copy-symbol cursym))) 1195 (when idx 1196 (xload-ensure-binding-index symaddr)) 1197 (%epushval s symaddr)))))) 1198 1172 1199 1173 1200 (defxloadfaslop $fasl-vintern (s) 1174 1201 (%xload-fasl-vintern s *package*)) 1175 1202 1203 (defxloadfaslop $fasl-nvintern (s) 1204 (%xload-fasl-nvintern s *package*)) 1205 1176 1206 (defxloadfaslop $fasl-vintern-special (s) 1177 1207 (%xload-fasl-vintern s *package* t)) 1208 1209 (defxloadfaslop $fasl-nvintern-special (s) 1210 (%xload-fasl-nvintern s *package* t)) 1178 1211 1179 1212 (defxloadfaslop $fasl-vpkg-intern (s) … … 1182 1215 (%xload-fasl-vintern s pkg))) 1183 1216 1217 (defxloadfaslop $fasl-nvpkg-intern (s) 1218 (let* ((addr (%fasl-expr-preserve-epush s)) 1219 (pkg (xload-addr->package addr))) 1220 (%xload-fasl-nvintern s pkg))) 1221 1184 1222 (defxloadfaslop $fasl-vpkg-intern-special (s) 1185 1223 (let* ((addr (%fasl-expr-preserve-epush s)) 1186 1224 (pkg (xload-addr->package addr))) 1187 1225 (%xload-fasl-vintern s pkg t))) 1226 1227 (defxloadfaslop $fasl-nvpkg-intern-special (s) 1228 (let* ((addr (%fasl-expr-preserve-epush s)) 1229 (pkg (xload-addr->package addr))) 1230 (%xload-fasl-nvintern s pkg t))) 1188 1231 1189 1232 (defun %xload-fasl-vpackage (s) … … 1193 1236 (or p (%kernel-restart $XNOPKG (if new-p str (%fasl-copystr str len))))))))) 1194 1237 1238 (defun %xload-fasl-nvpackage (s) 1239 (multiple-value-bind (str len new-p) (%fasl-nvreadstr s) 1240 (let* ((p (%find-pkg str len))) 1241 (%epushval s (xload-package->addr 1242 (or p (%kernel-restart $XNOPKG (if new-p str (%fasl-copystr str len))))))))) 1243 1195 1244 1196 1245 (defxloadfaslop $fasl-vpkg (s) 1197 1246 (%xload-fasl-vpackage s)) 1247 1248 (defxloadfaslop $fasl-nvpkg (s) 1249 (%xload-fasl-nvpackage s)) 1198 1250 1199 1251 (defxloadfaslop $fasl-cons (s)
Note:
See TracChangeset
for help on using the changeset viewer.
