comparison Python/import.c @ 1361:7cd533cf194a legacy-trunk

import.c: When something is wrong with the .pyc, properly open the .py file. object.c: Write allocation statistics to stderr.
author Sjoerd Mullender <sjoerd@acm.org>
date Mon, 25 Oct 1993 08:40:52 +0000
parents 1808ca5d8883
children 560407ec632b
comparison
equal deleted inserted replaced
1360:1808ca5d8883 1361:7cd533cf194a
226 mtime = getmtime(namebuf); 226 mtime = getmtime(namebuf);
227 magic = rd_long(fpc); 227 magic = rd_long(fpc);
228 pyc_mtime = rd_long(fpc); 228 pyc_mtime = rd_long(fpc);
229 if (mtime != -1 && mtime > pyc_mtime) { 229 if (mtime != -1 && mtime > pyc_mtime) {
230 fclose(fpc); 230 fclose(fpc);
231 fp = fopen(namebuf, "rb");
232 goto read_py; 231 goto read_py;
233 } 232 }
234 if (magic == MAGIC) { 233 if (magic == MAGIC) {
235 v = rd_object(fpc); 234 v = rd_object(fpc);
236 if (v == NULL || err_occurred() || 235 if (v == NULL || err_occurred() ||
245 if (verbose) { 244 if (verbose) {
246 if (co != NULL) 245 if (co != NULL)
247 fprintf(stderr, 246 fprintf(stderr,
248 "import %s # precompiled from \"%s\"\n", 247 "import %s # precompiled from \"%s\"\n",
249 name, namebuf); 248 name, namebuf);
250 else 249 else {
251 fprintf(stderr, 250 fprintf(stderr,
252 "# invalid precompiled file \"%s\"\n", 251 "# invalid precompiled file \"%s\"\n",
253 namebuf); 252 namebuf);
254 } 253 goto read_py;
255 } 254 }
256 else if ((fp = find_module(name, PY_SUFFIX, "r", 255 }
257 namebuf, &mtime)) != NULL) { 256 }
257 else {
258 read_py: 258 read_py:
259 namelen = strlen(namebuf); 259 if ((fp = find_module(name, PY_SUFFIX, "r",
260 if (co == NULL) { 260 namebuf, &mtime)) != NULL) {
261 if (verbose) 261 namelen = strlen(namebuf);
262 fprintf(stderr, 262 if (co == NULL) {
263 "import %s # from \"%s\"\n", 263 if (verbose)
264 name, namebuf); 264 fprintf(stderr,
265 err = parse_file(fp, namebuf, file_input, &n); 265 "import %s # from \"%s\"\n",
266 } else 266 name, namebuf);
267 err = E_DONE; 267 err = parse_file(fp, namebuf, file_input, &n);
268 fclose(fp); 268 } else
269 if (err != E_DONE) { 269 err = E_DONE;
270 err_input(err); 270 fclose(fp);
271 if (err != E_DONE) {
272 err_input(err);
273 return NULL;
274 }
275 }
276 else {
277 if (m == NULL) {
278 sprintf(namebuf, "no module named %.200s",
279 name);
280 err_setstr(ImportError, namebuf);
281 }
282 else {
283 sprintf(namebuf, "no source for module %.200s",
284 name);
285 err_setstr(ImportError, namebuf);
286 }
271 return NULL; 287 return NULL;
272 } 288 }
273 }
274 else {
275 if (m == NULL) {
276 sprintf(namebuf, "no module named %.200s", name);
277 err_setstr(ImportError, namebuf);
278 }
279 else {
280 sprintf(namebuf, "no source for module %.200s", name);
281 err_setstr(ImportError, namebuf);
282 }
283 return NULL;
284 } 289 }
285 if (m == NULL) { 290 if (m == NULL) {
286 m = add_module(name); 291 m = add_module(name);
287 if (m == NULL) { 292 if (m == NULL) {
288 freetree(n); 293 freetree(n);