comparison lisp/loadup.el @ 5206:39d74978fd32

Keep around file info for dumped functions and variables without docstrings. src/ChangeLog addition: 2010-04-17 Aidan Kehoe <kehoea@parhasard.net> * doc.c (Fdocumentation): If we have a zero length doc string in DOC, as may happen for undocumented compiled function objects which nonetheless have file information stored, return nil. (Fsnarf_documentation): DOC info existing for compiled functions without docstrings is perfectly legitimate, now the file is also used to store file names. * bytecode.c (set_compiled_function_documentation): Allow this function to set the documentation successfully for compiled function objects that don't currently have documentation; most relevant for functions without docstrings which have file information stored in DOC. lib-src/ChangeLog addition: 2010-04-17 Aidan Kehoe <kehoea@parhasard.net> * make-docfile.c (scan_lisp_file): Even if a function doesn't have a doc string, store its file name in DOC. lisp/ChangeLog addition: 2010-04-17 Aidan Kehoe <kehoea@parhasard.net> * loadup.el (load-history): Be a bit more discriminate in the entries we remove from load-history, only removing those where the information is entirely available from DOC. Fixes problems finding the files that dumped undocumented variables were loaded from, reported by Didier Verna. * loadhist.el (symbol-file): Correct a regexp here, I had forgotten to double a backslash.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 17 Apr 2010 10:40:03 +0100
parents bedf3747a6d7
children 5efbd1253905
comparison
equal deleted inserted replaced
5205:fcdb86afcb91 5206:39d74978fd32
218 ;; See also "site-load" above. 218 ;; See also "site-load" above.
219 (when (stringp site-start-file) 219 (when (stringp site-start-file)
220 (load "site-init" t)) 220 (load "site-init" t))
221 221
222 ;; Add information from this file to the load history. Delete information 222 ;; Add information from this file to the load history. Delete information
223 ;; for those files in preloaded-file-list; the symbol file information can 223 ;; that is available from DOC for those files in preloaded-file-list; in
224 ;; be taken from DOC, and #'unload-feature makes very little sense for 224 ;; practice, this boils down to #'provide and #'require calls, and variables
225 ;; dumped functionality. 225 ;; without documentation. Yes, this is a bit ugly.
226 (setq load-history (cons (nreverse current-load-list) (last load-history)) 226 (setq load-history (cons (nreverse current-load-list)
227 (delete*
228 nil
229 (mapc #'(lambda (element)
230 (remassq 'defun element)
231 (delete-if
232 #'(lambda (elt)
233 (and
234 (symbolp elt)
235 (get elt 'variable-documentation)))
236 element))
237 load-history)
238 :key #'cdr))
227 ;; Clear current-load-list; this (and adding information to 239 ;; Clear current-load-list; this (and adding information to
228 ;; load-history) is normally done in lread.c after reading the 240 ;; load-history) is normally done in lread.c after reading the
229 ;; entirety of a file, something which never happens for loadup.el. 241 ;; entirety of a file, something which never happens for loadup.el.
230 current-load-list nil) 242 current-load-list nil)
231 ;; Make the path to this file look a little nicer: 243 ;; Make the path to this file look a little nicer: