Richard Stallman <[EMAIL PROTECTED]> writes: > It is not _file_ foo, but _function_ foo that did (require 'bar). > > Why is it useful to record that? For what purpose? > > It isn't particularly useful, but it is hard to avoid. > Frequire does the same things, whether `require' was called > from a Lisp function or from code at top level in a file. > > However, my change turns off recording in the case where > no file is being loaded. > > Does this give good results? > > *** fns.c 18 Jan 2005 19:52:01 -0500 1.382 > --- fns.c 08 Apr 2005 22:22:22 -0400 > *************** > *** 66,71 **** > --- 66,72 ---- > extern int minibuffer_auto_raise; > extern Lisp_Object minibuf_window; > extern Lisp_Object Vlocale_coding_system; > + extern Lisp_Object Vloads_in_progress; > > Lisp_Object Qstring_lessp, Qprovide, Qrequire; > Lisp_Object Qyes_or_no_p_history;
Vloads_in_progress currently has internal linkage in lread.c. > *************** > *** 3444,3452 **** > CHECK_SYMBOL (feature); > > /* Record the presence of `require' in this file > ! even if the feature specified is already loaded. */ > ! LOADHIST_ATTACH (Fcons (Qrequire, feature)); > ! > tem = Fmemq (feature, Vfeatures); > > if (NILP (tem)) > --- 3445,3459 ---- > CHECK_SYMBOL (feature); > > /* Record the presence of `require' in this file > ! even if the feature specified is already loaded. > ! But not more than once in any file, > ! and not when we aren't loading a file. */ > ! if (! NILP (Vloads_in_progress)) > ! { > ! tem = Fcons (Qrequire, feature); > ! if (NILP (Fmember (tem, Vcurrent_load_list))) > ! LOADHIST_ATTACH (tem); > ! } > tem = Fmemq (feature, Vfeatures); > > if (NILP (tem)) For the rest, the patch works fine in the sense that (1) current-load-list does not grow anymore during a normal Emacs run and (2) require is as fast as featurep in case the feature is already loaded. But I don't know the internals of the load process, so I can't say if the patch breaks anything there. Lute. _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel