comparison lisp/post-gc.el @ 5284:d27c1ee1943b

Make the order of preloaded-file-list more sane. lisp/ChangeLog addition: 2010-10-12 Aidan Kehoe <kehoea@parhasard.net> * abbrev.el (fundamental-mode-abbrev-table, global-abbrev-table): Create both these abbrev tables using the usual #'define-abbrev-table calls, rather than attempting to special-case them. * cl-extra.el: Force cl-macs to be loaded here, if cl-extra.el is being loaded interpreted. Previously other, later files would redundantly call (load "cl-macs") when interpreted, it's more reasonable to do it here, once. * cmdloop.el (read-quoted-char-radix): Use defcustom here, we don't have any dump-order dependencies that would prevent that. * custom.el (eval-when-compile): Don't load cl-macs when interpreted or when byte-compiling, rely on cl-extra.el in the former case and the appropriate entry in bytecomp-load-hook in the latter. Get rid of custom-declare-variable-list, we have no dump-time dependencies that would require it. * faces.el (eval-when-compile): Don't load cl-macs when interpreted or when byte-compiling. * packages.el: Remove some inaccurate comments. * post-gc.el (cleanup-simple-finalizers): Use #'delete-if-not here, now the order of preloaded-file-list has been changed to make it available. * subr.el (custom-declare-variable-list): Remove. No need for it. Also remove a stub define-abbrev-table from this file, given the current order of preloaded-file-list there's no need for it.
author Aidan Kehoe <kehoea@parhasard.net>
date Tue, 12 Oct 2010 21:11:46 +0100
parents 75b8038f720e
children b9167d522a9a
comparison
equal deleted inserted replaced
5283:be436ac36ba4 5284:d27c1ee1943b
54 (cons (make-ephemeron object object func) 54 (cons (make-ephemeron object object func)
55 simple-finalizer-ephemerons))) 55 simple-finalizer-ephemerons)))
56 56
57 (defun cleanup-simple-finalizers (alist) 57 (defun cleanup-simple-finalizers (alist)
58 "Clean up `simple-finalizer-ephemerons'." 58 "Clean up `simple-finalizer-ephemerons'."
59 ;; We have to do this by hand because DELETE-IF isn't defined yet. 59 (and simple-finalizer-ephemerons
60 (let ((current simple-finalizer-ephemerons) 60 (setq simple-finalizer-ephemerons
61 (prev nil)) 61 (delete-if-not #'ephemeron-ref simple-finalizer-ephemerons))))
62 (while (not (null current))
63 (if (not (ephemeron-ref (car current)))
64 (if (null prev)
65 (setq simple-finalizer-ephemerons (cdr current))
66 (setcdr prev (cdr current)))
67 (setq prev current))
68 (setq current (cdr current)))))
69 62
70 (add-hook 'post-gc-hook 'cleanup-simple-finalizers) 63 (add-hook 'post-gc-hook 'cleanup-simple-finalizers)