Mercurial > hg > xemacs-beta
annotate lisp/update-elc.el @ 5634:2014ff433daf
Support hash COLLECTIONs, #'{all,try}-completion{s,}; add #'test-completion
src/ChangeLog addition:
2012-01-01 Aidan Kehoe <kehoea@parhasard.net>
Add #'test-completion, API from GNU.
Accept hash table COLLECTIONs in it and in the other
completion-oriented functions, #'try-completion,
#'all-completions, and those Lisp functions implemented in terms
of them.
* lisp.h: Update the prototype of map_obarray(), making FN
compatible with the FUNCTION argument of elisp_maphash();
* abbrev.c (abbrev_match_mapper):
* abbrev.c (record_symbol):
* doc.c (verify_doc_mapper):
* symbols.c (mapatoms_1):
* symbols.c (apropos_mapper):
Update these mapper functions to reflect the new argument to
map_obarray().
* symbols.c (map_obarray):
Call FN with two arguments, the string name of the symbol, and the
symbol itself, for API (mapper) compatibility with
elisp_maphash().
* minibuf.c (map_completion): New. Map a maphash_function_t across
a non function COLLECTION, as appropriate for #'try-completion and
friends.
* minibuf.c (map_completion_list): New. Map a maphash_function_t
across a pseudo-alist, as appropriate for the completion
functions.
* minibuf.c (ignore_completion_p): PRED needs to be called with
two args if and only if the collection is a hash table. Implement
this.
* minibuf.c (try_completion_mapper): New. The loop body of
#'try-completion, refactored out.
* minibuf.c (Ftry_completion): Use try_completion_mapper(),
map_completion().
* minibuf.c (all_completions_mapper): New. The loop body of
#'all-completions, refactored out.
* minibuf.c (Fall_completions): Use all_completions_mapper(),
map_completion().
* minibuf.c (test_completion_mapper): New. The loop body of
#'test-completion.
* minibuf.c (Ftest_completion): New, API from GNU.
* minibuf.c (syms_of_minibuf): Make Ftest_completion available.
tests/ChangeLog addition:
2012-01-01 Aidan Kehoe <kehoea@parhasard.net>
* automated/completion-tests.el: New.
Test #'try-completion, #'all-completion and #'test-completion with
list, vector and hash-table COLLECTION arguments.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 01 Jan 2012 15:18:52 +0000 |
parents | bd80d9103fc8 |
children |
rev | line source |
---|---|
1303 | 1 ;;; update-elc.el --- Bytecompile out-of-date dumped files, pre-dumping |
428 | 2 |
3 ;; Copyright (C) 1997 Free Software Foundation, Inc. | |
442 | 4 ;; Copyright (C) 1996 Sun Microsystems, Inc. |
1261 | 5 ;; Copyright (C) 2001, 2003 Ben Wing. |
428 | 6 |
528 | 7 ;; Author: Ben Wing <ben@xemacs.org> |
8 ;; Based On: Original by Steven L Baur <steve@xemacs.org> | |
428 | 9 ;; Maintainer: XEmacs Development Team |
10 ;; Keywords: internal | |
11 | |
12 ;; This file is part of XEmacs. | |
13 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
14 ;; XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
15 ;; under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
16 ;; Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
17 ;; option) any later version. |
428 | 18 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
19 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
20 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
21 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
22 ;; for more details. |
428 | 23 |
24 ;; You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5264
diff
changeset
|
25 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
428 | 26 |
27 ;;; Synched up with: Not in FSF. | |
28 | |
29 ;;; Commentary: | |
30 | |
31 ;; Byte compile the .EL files necessary to dump out xemacs. | |
1261 | 32 ;; Also update the auto-autoloads.el files. |
33 | |
428 | 34 ;; Use this file like this: |
35 | |
36 ;; temacs -batch -l ../lisp/update-elc.el $lisp | |
37 | |
38 ;; where $lisp comes from the Makefile. .elc files listed in $lisp will | |
39 ;; cause the corresponding .el file to be compiled. .el files listed in | |
40 ;; $lisp will be ignored. | |
41 | |
42 ;; (the idea here is that you can bootstrap if your .ELC files | |
43 ;; are missing or badly out-of-date) | |
44 | |
442 | 45 ;; See also update-elc-2.el |
428 | 46 |
47 ;;; Code: | |
48 | |
1261 | 49 ;; Help debug problems. |
50 (setq stack-trace-on-error t | |
51 load-always-display-messages t) | |
52 | |
428 | 53 (defvar processed nil) |
54 (defvar update-elc-files-to-compile nil) | |
528 | 55 (defvar need-to-rebuild-autoloads nil) |
56 (defvar need-to-rebuild-mule-autoloads nil) | |
57 (defvar need-to-recompile-autoloads nil) | |
58 (defvar need-to-recompile-mule-autoloads nil) | |
1330 | 59 (defvar exe-target nil) |
60 (defvar dump-target nil) | |
61 (defvar dump-target-out-of-date-wrt-dump-files nil) | |
62 ;(defvar dump-target-out-of-date-wrt-exe-target nil) | |
428 | 63 |
64 ;(setq update-elc-files-to-compile | |
65 ; (delq nil | |
66 ; (mapcar (function | |
67 ; (lambda (x) | |
68 ; (if (string-match "\.elc$" x) | |
69 ; (let ((src (substring x 0 -1))) | |
70 ; (if (file-newer-than-file-p src x) | |
71 ; (progn | |
72 ; (and (file-exists-p x) | |
73 ; (null (file-writable-p x)) | |
74 ; (set-file-modes x (logior (file-modes x) 128))) | |
75 ; src)))))) | |
76 ; ;; -batch gets filtered out. | |
77 ; (nthcdr 3 command-line-args)))) | |
78 | |
1330 | 79 |
3511 | 80 (defvar build-directory (expand-file-name ".." invocation-directory)) |
81 | |
1330 | 82 (defvar source-lisp (file-name-directory (expand-file-name |
3511 | 83 (nth 2 command-line-args)))) |
84 | |
1330 | 85 (defvar source-lisp-mule (expand-file-name "mule" source-lisp)) |
3511 | 86 (defvar source-directory (expand-file-name ".." source-lisp)) |
1330 | 87 (defvar aa-lisp (expand-file-name "auto-autoloads.el" source-lisp)) |
88 (defvar aac-lisp (expand-file-name "auto-autoloads.elc" source-lisp)) | |
89 (defvar aa-lisp-mule (expand-file-name "auto-autoloads.el" source-lisp-mule)) | |
90 (defvar aac-lisp-mule (expand-file-name "auto-autoloads.elc" source-lisp-mule)) | |
91 | |
92 (setq load-path (list source-lisp)) | |
428 | 93 |
94 (load "find-paths.el") | |
95 (load "packages.el") | |
96 (load "setup-paths.el") | |
1261 | 97 |
98 ;; Lisp files loaded in order to byte compile anything. If any are out of | |
99 ;; date, we need to load them as .el's, byte compile them, and reload as | |
100 ;; .elc's. | |
101 (defvar lisp-files-needed-for-byte-compilation | |
102 '("bytecomp" | |
5319
ed5d4f081fa9
cl-macs belongs in lisp-files-needed-for-byte-compilation.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5264
diff
changeset
|
103 "cl-macs" |
1261 | 104 "byte-optimize")) |
105 | |
1263 | 106 ;; Lisp files not in `lisp-files-needed-for-byte-compilation' that need |
107 ;; early byte compilation. These are files loaded by update-elc.el in | |
108 ;; order to do the compilation of all the rest of the files. | |
1261 | 109 (defvar lisp-files-needing-early-byte-compilation |
2548 | 110 '("easy-mmode" |
1261 | 111 "autoload" |
5319
ed5d4f081fa9
cl-macs belongs in lisp-files-needed-for-byte-compilation.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5264
diff
changeset
|
112 "shadow")) |
1261 | 113 |
114 (defvar unbytecompiled-lisp-files | |
115 '("paths.el" | |
116 "dumped-lisp.el" | |
117 "dumped-pkg-lisp.el" | |
4246 | 118 "raw-process.el") |
2367 | 119 "Lisp files that should not be byte compiled. |
120 Files in `additional-dump-dependencies' do not need to be listed here.") | |
121 | |
122 (defvar additional-dump-dependencies | |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4246
diff
changeset
|
123 (nconc '("loadup.el" |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4246
diff
changeset
|
124 "loadup-el.el" |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4246
diff
changeset
|
125 "update-elc.el") |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4246
diff
changeset
|
126 (if (featurep 'mule) |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4246
diff
changeset
|
127 '("mule/make-coding-system"))) |
2367 | 128 "Lisp files that are not dumped but which the dump depends on. |
129 If any of these files are changed, we need to redump.") | |
428 | 130 |
1298 | 131 (defvar lisp-files-ignored-when-checking-for-autoload-updating |
132 '("custom-load.el" | |
133 "auto-autoloads.el") | |
134 "Lisp files that should not trigger auto-autoloads rebuilding.") | |
135 | |
528 | 136 (defun update-elc-chop-extension (file) |
137 (if (string-match "\\.elc?$" file) | |
5089
99f8ebc082d9
Make #'substring an alias of #'subseq; give the latter the byte code.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4995
diff
changeset
|
138 (subseq file 0 (match-beginning 0)) |
528 | 139 file)) |
428 | 140 |
528 | 141 ;; we used to call packages-list-autoloads here, but it's false generality. |
142 ;; we need to handle each autoload file differently and there are only | |
143 ;; two of them. | |
428 | 144 |
1261 | 145 (let (preloaded-file-list site-load-packages files-to-process) |
528 | 146 |
1330 | 147 (load (expand-file-name "dumped-lisp.el" source-lisp)) |
442 | 148 |
1330 | 149 ;; two setups here: |
150 ;; (1) temacs.exe is undumped, dumped into xemacs.exe. Happens with | |
151 ;; unexec, but also with pdump under MS Windows native, since | |
152 ;; the dumped data is stored as a resource in the xemacs.exe | |
153 ;; executable. | |
154 ;; (2) xemacs.exe is dumped or undumped. Running `xemacs -nd' gets | |
155 ;; you the equivalent of `temacs'. Dumping creates a file | |
156 ;; `xemacs.dmp'. | |
1261 | 157 |
1330 | 158 (cond ((eq system-type 'windows-nt) |
159 (setq exe-target "src/temacs.exe" | |
160 dump-target "src/xemacs.exe")) | |
161 ;; #### need better ways of getting config params | |
162 ((not (memq 'pdump (emacs-run-status))) | |
163 (setq exe-target "src/temacs" | |
164 dump-target "src/xemacs")) | |
165 (t | |
166 (setq exe-target "src/xemacs" | |
167 dump-target "src/xemacs.dmp"))) | |
1261 | 168 |
3511 | 169 (setq exe-target (expand-file-name exe-target build-directory)) |
170 (setq dump-target (expand-file-name dump-target build-directory)) | |
1330 | 171 |
172 ;; Not currently used. | |
173 ; (setq dump-target-out-of-date-wrt-exe-target | |
174 ; (cond ((not dump-target) t) | |
175 ; (temacs-exe (file-newer-than-file-p temacs-exe dump-target)) | |
176 ; ((not data-file) t) | |
177 ; (t (file-newer-than-file-p dump-target data-file)))) | |
178 ; (setq dump-target-exists (or (and temacs-exe dump-target) | |
179 ; (and data-file dump-target)))) | |
1261 | 180 |
428 | 181 ;; Path setup |
182 (let ((package-preloaded-file-list | |
183 (packages-collect-package-dumped-lisps late-package-load-path))) | |
184 | |
185 (setq preloaded-file-list | |
186 (append package-preloaded-file-list | |
187 preloaded-file-list | |
188 packages-hardcoded-lisp))) | |
189 | |
3511 | 190 (load (expand-file-name "site-packages" source-directory) t t) |
428 | 191 (setq preloaded-file-list |
192 (append packages-hardcoded-lisp | |
193 preloaded-file-list | |
194 site-load-packages)) | |
1261 | 195 ;; bytecomp, byte-optimize, autoload, etc. are mentioned specially |
196 ;; in the lisp-files-need* variables. | |
197 (setq files-to-process (append lisp-files-needed-for-byte-compilation | |
198 lisp-files-needing-early-byte-compilation | |
2367 | 199 additional-dump-dependencies |
1261 | 200 preloaded-file-list)) |
528 | 201 (while files-to-process |
202 (let* ((arg (car files-to-process)) | |
2367 | 203 (arg-is-dump-dependency |
204 (or (member arg preloaded-file-list) | |
205 (member arg additional-dump-dependencies))) | |
528 | 206 (arg-sans-extension (update-elc-chop-extension arg)) |
207 (full-arg (locate-library arg-sans-extension)) | |
208 (full-arg-sans-extension | |
209 (if (null full-arg) | |
210 (progn | |
211 (print (format "Error: Library file %s not found" arg)) | |
1261 | 212 (backtrace) |
528 | 213 ;; Uncomment in case of trouble |
2456 | 214 ;;(print (format "late-package-hierarchies: %S" late-package-hierarchies)) |
528 | 215 ;;(print (format "guessed-roots: %S" |
216 ;; (paths-find-emacs-roots | |
217 ;; invocation-directory invocation-name))) | |
218 (kill-emacs)) | |
219 (update-elc-chop-extension full-arg))) | |
220 (full-arg-el (concat full-arg-sans-extension ".el")) | |
221 (full-arg-elc (concat full-arg-sans-extension ".elc")) | |
1261 | 222 (full-arg-dir (file-name-directory full-arg-el))) |
528 | 223 |
2367 | 224 ; (print full-arg-el) |
442 | 225 |
226 ;; now check if .el or .elc is newer than the dumped exe. | |
227 ;; if so, need to redump. | |
2367 | 228 (when (and dump-target arg-is-dump-dependency |
1298 | 229 ;; no need to check for existence of either of the files |
230 ;; because of the definition of file-newer-than-file-p. | |
1330 | 231 (or (file-newer-than-file-p full-arg-el dump-target) |
232 (file-newer-than-file-p full-arg-elc dump-target))) | |
233 (setq dump-target-out-of-date-wrt-dump-files t)) | |
528 | 234 |
235 (if (and (not (member (file-name-nondirectory arg) | |
1261 | 236 unbytecompiled-lisp-files)) |
2367 | 237 (not (member (file-name-nondirectory arg) |
238 additional-dump-dependencies)) | |
528 | 239 (not (member full-arg-el processed)) |
1298 | 240 ;; no need to check for existence of either of the files |
241 ;; because of the definition of file-newer-than-file-p. | |
242 (file-newer-than-file-p full-arg-el full-arg-elc)) | |
528 | 243 (setq processed (cons full-arg-el processed))) |
244 | |
245 (setq files-to-process (cdr files-to-process)))) | |
442 | 246 |
1261 | 247 ;; Check if we need to rebuild the auto-autoloads.el files -- that is, |
248 ;; if ANY .el files have changed. | |
1330 | 249 (let ((dirs-to-check (list source-lisp source-lisp-mule))) |
1261 | 250 (while dirs-to-check |
251 (let* ((dir (car dirs-to-check)) | |
252 (full-dir (expand-file-name dir)) | |
253 (all-files-in-dir (directory-files full-dir t "\\.el$" nil t)) | |
254 (autoload-file | |
255 (expand-file-name "auto-autoloads.el" full-dir)) | |
1330 | 256 (autoload-is-mule (equal dir source-lisp-mule))) |
1261 | 257 (while all-files-in-dir |
258 (let* ((full-arg (car all-files-in-dir))) | |
1298 | 259 ;; custom-load.el always gets regenerated so don't let that |
260 ;; trigger us. | |
261 (when (and (not | |
262 (member | |
263 (file-name-nondirectory full-arg) | |
264 lisp-files-ignored-when-checking-for-autoload-updating | |
265 )) | |
266 (file-newer-than-file-p full-arg autoload-file)) | |
1261 | 267 (if autoload-is-mule |
268 (setq need-to-rebuild-mule-autoloads t) | |
269 (setq need-to-rebuild-autoloads t)))) | |
270 (setq all-files-in-dir (cdr all-files-in-dir)))) | |
271 (setq dirs-to-check (cdr dirs-to-check)))) | |
272 | |
1330 | 273 (if dump-target-out-of-date-wrt-dump-files |
442 | 274 (condition-case nil |
1330 | 275 (write-region-internal |
3511 | 276 "foo" nil (expand-file-name "src/NEEDTODUMP" build-directory)) |
442 | 277 (file-error nil))) |
278 | |
279 ) | |
428 | 280 |
528 | 281 (when (or need-to-rebuild-autoloads |
1298 | 282 ;; no real need for the following check either, because if the file |
283 ;; doesn't exist, need-to-rebuild-autoloads gets set above. but | |
284 ;; it's only one call, so it won't slow things down much and it keeps | |
285 ;; the logic cleaner. | |
1330 | 286 (not (file-exists-p aa-lisp)) |
1298 | 287 ;; no need to check for file-exists of .elc due to definition |
288 ;; of file-newer-than-file-p | |
1330 | 289 (file-newer-than-file-p aa-lisp aac-lisp)) |
528 | 290 (setq need-to-recompile-autoloads t)) |
291 | |
292 (when (or need-to-rebuild-mule-autoloads | |
1298 | 293 ;; not necessary but ... see comment above. |
1330 | 294 (not (file-exists-p aa-lisp-mule)) |
1298 | 295 ;; no need to check for file-exists of .elc due to definition |
296 ;; of file-newer-than-file-p | |
1330 | 297 (file-newer-than-file-p aa-lisp-mule aac-lisp-mule)) |
528 | 298 (setq need-to-recompile-mule-autoloads t)) |
299 | |
300 (when (not (featurep 'mule)) | |
301 ;; sorry charlie. | |
302 (setq need-to-rebuild-mule-autoloads nil | |
303 need-to-recompile-mule-autoloads nil)) | |
304 | |
428 | 305 (setq update-elc-files-to-compile (append update-elc-files-to-compile |
622 | 306 (nreverse processed))) |
428 | 307 |
1261 | 308 ;(print update-elc-files-to-compile) |
428 | 309 |
1261 | 310 (let ((do-autoload-commands |
311 (append | |
312 (if (or need-to-rebuild-autoloads | |
313 need-to-rebuild-mule-autoloads) | |
1330 | 314 (list "-l" "autoload")) |
1261 | 315 (if need-to-rebuild-autoloads |
2548 | 316 (list "-f" "batch-update-directory-autoloads" |
1330 | 317 "auto" source-lisp)) |
1261 | 318 (if need-to-rebuild-mule-autoloads |
2548 | 319 (list "-f" "batch-update-directory-autoloads" |
1330 | 320 "mule" source-lisp-mule)) |
1261 | 321 (if need-to-recompile-autoloads |
1330 | 322 (list "-f" "batch-byte-compile-one-file" |
323 aa-lisp)) | |
1261 | 324 (if need-to-recompile-mule-autoloads |
1330 | 325 (list "-f" "batch-byte-compile-one-file" |
326 aa-lisp-mule))))) | |
1298 | 327 (condition-case nil |
3511 | 328 (delete-file (expand-file-name "src/REBUILD_AUTOLOADS" build-directory)) |
1298 | 329 (file-error nil)) |
1261 | 330 (cond ((and (not update-elc-files-to-compile) |
331 (not need-to-rebuild-autoloads) | |
332 (not need-to-rebuild-mule-autoloads) | |
333 (not need-to-recompile-autoloads) | |
334 (not need-to-recompile-mule-autoloads)) | |
1315 | 335 ;; (1) Nothing to do at all. |
336 ) | |
1298 | 337 ((not update-elc-files-to-compile) |
1261 | 338 ;; (2) We have no files to byte-compile, but we do need to |
1298 | 339 ;; regenerate and compile the auto-autoloads file, so signal |
340 ;; update-elc-2 to do it. This is much faster than loading | |
341 ;; all the .el's and doing it here. (We only need to rebuild | |
342 ;; the autoloads here when we have files to compile, since | |
343 ;; they may depend on the updated autoloads.) | |
344 (condition-case nil | |
1330 | 345 (write-region-internal |
3511 | 346 "foo" nil (expand-file-name "src/REBUILD_AUTOLOADS" build-directory)) |
1298 | 347 (file-error nil)) |
1315 | 348 ) |
1261 | 349 (t |
350 (let ((bc-bootstrap | |
351 (mapcar #'(lambda (arg) | |
352 (concat (update-elc-chop-extension | |
353 (locate-library arg)) ".el")) | |
354 lisp-files-needed-for-byte-compilation)) | |
355 (bootstrap-other | |
356 (mapcar #'(lambda (arg) | |
357 (concat (update-elc-chop-extension | |
358 (locate-library arg)) ".el")) | |
359 lisp-files-needing-early-byte-compilation))) | |
360 (setq inhibit-autoloads t) | |
528 | 361 ;; if bytecomp or byte-optimize need recompiling, then load |
362 ;; the .el version of them first, recompile them, and reload | |
363 ;; the .elc versions to recompile everything else (so we won't | |
364 ;; be waiting until the cows come home). we need to set | |
365 ;; load-ignore-elc-files because byte-optimize gets autoloaded | |
366 ;; from bytecomp. | |
1261 | 367 (let ((recompile-bc-bootstrap |
5264
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
368 (mapcan |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
369 #'(lambda (arg) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
370 (when (member arg update-elc-files-to-compile) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
371 (append '("-f" "batch-byte-compile-one-file") |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
372 (list arg)))) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
373 bc-bootstrap)) |
1261 | 374 (recompile-bootstrap-other |
5264
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
375 (mapcan |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
376 #'(lambda (arg) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
377 (when (member arg update-elc-files-to-compile) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
378 (append '("-f" "batch-byte-compile-one-file") |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
379 (list arg)))) |
0d43872986b6
Change (apply 'nconc (mapcar ...)) to (mapcan ...); warn about first form.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5089
diff
changeset
|
380 bootstrap-other))) |
4995
8431b52e43b1
Move the various map* functions to C; add #'map-into.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4690
diff
changeset
|
381 (mapc |
1261 | 382 #'(lambda (arg) |
383 (setq update-elc-files-to-compile | |
5338
8608eadee6ba
Move #'delq, #'delete to Lisp, adding support for sequences.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5319
diff
changeset
|
384 (delete* arg update-elc-files-to-compile |
8608eadee6ba
Move #'delq, #'delete to Lisp, adding support for sequences.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5319
diff
changeset
|
385 :test (if default-file-system-ignore-case |
8608eadee6ba
Move #'delq, #'delete to Lisp, adding support for sequences.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5319
diff
changeset
|
386 #'equalp |
8608eadee6ba
Move #'delq, #'delete to Lisp, adding support for sequences.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5319
diff
changeset
|
387 #'equal)))) |
1261 | 388 (append bc-bootstrap bootstrap-other)) |
5632
bd80d9103fc8
Integrate CL code better into core, remove obsolete compatibility code.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5468
diff
changeset
|
389 (autoload 'cl-compile-time-init "cl-macs") |
1261 | 390 (setq command-line-args |
391 (append | |
392 '("-l" "loadup-el.el" "run-temacs" | |
393 "-batch" "-no-packages" "-no-autoloads" | |
394 "-eval" "(setq stack-trace-on-error t)" | |
395 "-eval" "(setq load-always-display-messages t)") | |
396 (when recompile-bc-bootstrap | |
397 (append | |
398 '("-eval" "(setq load-ignore-elc-files t)" | |
399 "-l" "bytecomp") | |
400 recompile-bc-bootstrap | |
401 '("-eval" "(setq load-ignore-elc-files nil)"))) | |
402 '("-l" "bytecomp") | |
403 ;; likewise, recompile autoload.el etc. if out-of-date. | |
404 recompile-bootstrap-other | |
405 ;; then generate autoloads for lisp and maybe lisp/mule. | |
406 do-autoload-commands | |
407 ;; now load the autoloads and compile alles anderes. | |
408 '("-eval" "(setq inhibit-autoloads nil)" | |
409 "-f" "startup-load-autoloads" | |
410 "-f" "batch-byte-compile") | |
411 update-elc-files-to-compile | |
412 )))) | |
413 | |
414 ;;(print command-line-args) | |
415 (load "loadup-el.el")))) | |
428 | 416 |
1303 | 417 (kill-emacs) |
428 | 418 |
419 ;;; update-elc.el ends here |