Mercurial > emacs
comparison lisp/emacs-lisp/bytecomp.el @ 40451:9c7e47dd60be
(byte-recompile-directory): Report numbers of files skipped and failed too.
author | Sam Steingold <sds@gnu.org> |
---|---|
date | Mon, 29 Oct 2001 17:26:26 +0000 |
parents | 2b16a80692ef |
children | 2d63191afacd |
comparison
equal
deleted
inserted
replaced
40450:d29fac587062 | 40451:9c7e47dd60be |
---|---|
8 ;; Maintainer: FSF | 8 ;; Maintainer: FSF |
9 ;; Keywords: lisp | 9 ;; Keywords: lisp |
10 | 10 |
11 ;;; This version incorporates changes up to version 2.10 of the | 11 ;;; This version incorporates changes up to version 2.10 of the |
12 ;;; Zawinski-Furuseth compiler. | 12 ;;; Zawinski-Furuseth compiler. |
13 (defconst byte-compile-version "$Revision: 2.90 $") | 13 (defconst byte-compile-version "$Revision: 2.91 $") |
14 | 14 |
15 ;; This file is part of GNU Emacs. | 15 ;; This file is part of GNU Emacs. |
16 | 16 |
17 ;; GNU Emacs is free software; you can redistribute it and/or modify | 17 ;; GNU Emacs is free software; you can redistribute it and/or modify |
18 ;; it under the terms of the GNU General Public License as published by | 18 ;; it under the terms of the GNU General Public License as published by |
1264 (if noninteractive | 1264 (if noninteractive |
1265 nil | 1265 nil |
1266 (save-some-buffers) | 1266 (save-some-buffers) |
1267 (force-mode-line-update)) | 1267 (force-mode-line-update)) |
1268 (let ((directories (list (expand-file-name directory))) | 1268 (let ((directories (list (expand-file-name directory))) |
1269 (skip-count 0) | |
1270 (fail-count 0) | |
1269 (file-count 0) | 1271 (file-count 0) |
1270 (dir-count 0) | 1272 (dir-count 0) |
1271 last-dir) | 1273 last-dir) |
1272 (displaying-byte-compile-warnings | 1274 (displaying-byte-compile-warnings |
1273 (while directories | 1275 (while directories |
1274 (setq directory (car directories)) | 1276 (setq directory (car directories)) |
1275 (message "Checking %s..." directory) | 1277 (message "Checking %s..." directory) |
1276 (let ((files (directory-files directory)) | 1278 (let ((files (directory-files directory)) |
1277 source dest) | 1279 source dest) |
1278 (while files | 1280 (dolist (file files) |
1279 (setq source (expand-file-name (car files) directory)) | 1281 (setq source (expand-file-name file directory)) |
1280 (if (and (not (member (car files) '("." ".." "RCS" "CVS"))) | 1282 (if (and (not (member file '("." ".." "RCS" "CVS"))) |
1281 (file-directory-p source) | 1283 (file-directory-p source) |
1282 (not (file-symlink-p source))) | 1284 (not (file-symlink-p source))) |
1283 ;; This file is a subdirectory. Handle them differently. | 1285 ;; This file is a subdirectory. Handle them differently. |
1284 (when (or (null arg) | 1286 (when (or (null arg) |
1285 (eq 0 arg) | 1287 (eq 0 arg) |
1298 (and arg | 1300 (and arg |
1299 (or (eq 0 arg) | 1301 (or (eq 0 arg) |
1300 (y-or-n-p (concat "Compile " source "? ")))))) | 1302 (y-or-n-p (concat "Compile " source "? ")))))) |
1301 (progn (if (and noninteractive (not byte-compile-verbose)) | 1303 (progn (if (and noninteractive (not byte-compile-verbose)) |
1302 (message "Compiling %s..." source)) | 1304 (message "Compiling %s..." source)) |
1303 (byte-compile-file source) | 1305 (let ((res (byte-compile-file source))) |
1306 (cond ((eq res 'no-byte-compile) | |
1307 (setq skip-count (1+ skip-count))) | |
1308 ((eq res t) | |
1309 (setq file-count (1+ file-count))) | |
1310 ((eq res nil) | |
1311 (setq fail-count (1+ fail-count))))) | |
1304 (or noninteractive | 1312 (or noninteractive |
1305 (message "Checking %s..." directory)) | 1313 (message "Checking %s..." directory)) |
1306 (setq file-count (1+ file-count)) | |
1307 (if (not (eq last-dir directory)) | 1314 (if (not (eq last-dir directory)) |
1308 (setq last-dir directory | 1315 (setq last-dir directory |
1309 dir-count (1+ dir-count))) | 1316 dir-count (1+ dir-count))) |
1310 ))) | 1317 ))))) |
1311 (setq files (cdr files)))) | |
1312 (setq directories (cdr directories)))) | 1318 (setq directories (cdr directories)))) |
1313 (message "Done (Total of %d file%s compiled%s)" | 1319 (message "Done (Total of %d file%s compiled%s%s%s)" |
1314 file-count (if (= file-count 1) "" "s") | 1320 file-count (if (= file-count 1) "" "s") |
1321 (if (> fail-count 0) (format ", %d failed" fail-count) "") | |
1322 (if (> skip-count 0) (format ", %d skipped" skip-count) "") | |
1315 (if (> dir-count 1) (format " in %d directories" dir-count) "")))) | 1323 (if (> dir-count 1) (format " in %d directories" dir-count) "")))) |
1316 | 1324 |
1317 ;;;###autoload | 1325 ;;;###autoload |
1318 (defun byte-compile-file (filename &optional load) | 1326 (defun byte-compile-file (filename &optional load) |
1319 "Compile a file of Lisp code named FILENAME into a file of byte code. | 1327 "Compile a file of Lisp code named FILENAME into a file of byte code. |
1320 The output file's name is made by appending `c' to the end of FILENAME. | 1328 The output file's name is made by appending `c' to the end of FILENAME. |
1321 With prefix arg (noninteractively: 2nd arg), LOAD the file after compiling. | 1329 With prefix arg (noninteractively: 2nd arg), LOAD the file after compiling. |
1322 The value is t if there were no errors, nil if errors." | 1330 The value is non-nil if there were no errors, nil if errors." |
1323 ;; (interactive "fByte compile file: \nP") | 1331 ;; (interactive "fByte compile file: \nP") |
1324 (interactive | 1332 (interactive |
1325 (let ((file buffer-file-name) | 1333 (let ((file buffer-file-name) |
1326 (file-name nil) | 1334 (file-name nil) |
1327 (file-dir nil)) | 1335 (file-dir nil)) |
1387 (file-relative-name filename) | 1395 (file-relative-name filename) |
1388 (with-current-buffer input-buffer no-byte-compile)) | 1396 (with-current-buffer input-buffer no-byte-compile)) |
1389 (if (file-exists-p target-file) | 1397 (if (file-exists-p target-file) |
1390 (condition-case nil (delete-file target-file) (error nil))) | 1398 (condition-case nil (delete-file target-file) (error nil))) |
1391 ;; We successfully didn't compile this file. | 1399 ;; We successfully didn't compile this file. |
1392 t) | 1400 'no-byte-compile) |
1393 (if byte-compile-verbose | 1401 (if byte-compile-verbose |
1394 (message "Compiling %s..." filename)) | 1402 (message "Compiling %s..." filename)) |
1395 (setq byte-compiler-error-flag nil) | 1403 (setq byte-compiler-error-flag nil) |
1396 ;; It is important that input-buffer not be current at this call, | 1404 ;; It is important that input-buffer not be current at this call, |
1397 ;; so that the value of point set in input-buffer | 1405 ;; so that the value of point set in input-buffer |
3555 (let ((error nil)) | 3563 (let ((error nil)) |
3556 (while command-line-args-left | 3564 (while command-line-args-left |
3557 (if (file-directory-p (expand-file-name (car command-line-args-left))) | 3565 (if (file-directory-p (expand-file-name (car command-line-args-left))) |
3558 (let ((files (directory-files (car command-line-args-left))) | 3566 (let ((files (directory-files (car command-line-args-left))) |
3559 source dest) | 3567 source dest) |
3560 (while files | 3568 (dolist (file files) |
3561 (if (and (string-match emacs-lisp-file-regexp (car files)) | 3569 (if (and (string-match emacs-lisp-file-regexp file) |
3562 (not (auto-save-file-name-p (car files))) | 3570 (not (auto-save-file-name-p file)) |
3563 (setq source (expand-file-name (car files) | 3571 (setq source (expand-file-name file |
3564 (car command-line-args-left))) | 3572 (car command-line-args-left))) |
3565 (setq dest (byte-compile-dest-file source)) | 3573 (setq dest (byte-compile-dest-file source)) |
3566 (file-exists-p dest) | 3574 (file-exists-p dest) |
3567 (file-newer-than-file-p source dest)) | 3575 (file-newer-than-file-p source dest)) |
3568 (if (null (batch-byte-compile-file source)) | 3576 (if (null (batch-byte-compile-file source)) |
3569 (setq error t))) | 3577 (setq error t))))) |
3570 (setq files (cdr files)))) | |
3571 (if (null (batch-byte-compile-file (car command-line-args-left))) | 3578 (if (null (batch-byte-compile-file (car command-line-args-left))) |
3572 (setq error t))) | 3579 (setq error t))) |
3573 (setq command-line-args-left (cdr command-line-args-left))) | 3580 (setq command-line-args-left (cdr command-line-args-left))) |
3574 (kill-emacs (if error 1 0)))) | 3581 (kill-emacs (if error 1 0)))) |
3575 | 3582 |