;;; compiled by eric@mole.gnu.ai.mit.edu on Wed Mar 17 17:09:35 1993
;;; from file /gd/gnu/emacs/19.0/lisp/profile.el
;;; emacs version 19.0.506.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar profile-functions-list nil "\
*List of functions to profile")
(defvar profile-timer-program "emacs-timer" "\
*Name of the timer program")
(defvar profile-timer-process nil "\
Process running the timer")
(defvar profile-time-list nil "\
List of accumulative time for each profiled function")
(defvar profile-init-list nil "\
List of entry time for each function. 
Both how many times invoked and real time of start.")
(defvar profile-max-fun-name 0 "\
Max length of name of any function profiled")
(defvar profile-temp-result- nil "\
Should NOT be used anywhere else")
(defvar profile-time (byte-code "À‰B‡" [0] 2) "\
Used to return result from a filter")
(defvar profile-buffer "*profile*" "\
Name of profile buffer")
(fset 'profile-functions #[(&optional flist) "„ 	ÂÃ\"‡" [flist profile-functions-list mapcar profile-a-function] 3 "\
Profile all the functions listed in profile-functions-list.
With argument FLIST, use the list FLIST instead." "*P"])
(fset 'profile-filter #[(process input) "ÀÁ\n\"ÃUƒ ÄÅ\"‡ÇÉ\nÃÊÃ!O!\"ˆËÉ\nÌÃ!ÍO!\"‡" [string-match "\\." input 0 error "Bad output from %s" profile-timer-program setcar profile-time string-to-int match-beginning setcdr match-end nil] 7 "\
Filter for the timer process. Sets profile-time to the returned time."])
(fset 'profile-print #[(entry) "AÁÂÆÇ@\"cˆcˆÉ\n!ˆË@!‰cˆGY„: É\n!ˆÍGZOcˆÎG!ˆËA!ÏÐÑÍÒGZOÓ$+‡" [entry nil 5 offset str time format "%s" space move-to-column ref-column int-to-string spaces 0 forward-char insert "." "000000" 6 "\n"] 7 "\
Print one ENTRY (from profile-time-list) ."])
(byte-code "ÀÂ‡" ["                                                         " spaces nil] 1)
(fset 'profile-results #[nil "Á\\Ä\nOÆ!ˆÈ ˆÉcˆcˆÊ\n!ˆËcˆÌcˆcˆÊ\n!ˆÍcˆÎÏ\"*‡" [profile-max-fun-name 8 ref-column spaces 0 space switch-to-buffer profile-buffer erase-buffer "Function" move-to-column "Time (Seconds.Useconds)\n" "========" "=======================\n" mapcar profile-print profile-time-list] 3 "\
Display profiling results in  profile-buffer ." nil])
(fset (quote profile-reset-timer) #[nil "À	Â\"‡" [process-send-string profile-timer-process "z\n"] 3])
(fset 'profile-check-zero-init-times #[(entry) "AA‰@ÂU… 	AÂU?… ÃÄ!)‡" [entry time 0 error "Process timer died while making performance profile."] 3 "\
If ENTRY has non zero time, give an error."])
(fset 'profile-get-time #[nil "À	!ƒ Â	!Ã=„* ÄÅÆ!#É	Ê\"ˆË	!ˆÌ ˆÍÎ\"ˆÐ	Ñ\"ˆÒ ‡" [processp profile-timer-process process-status run start-process "timer" get-buffer-create profile-buffer profile-timer-program set-process-filter profile-filter process-kill-without-query profile-reset-timer mapcar profile-check-zero-init-times profile-init-list process-send-string "p\n" accept-process-output] 4 "\
Get time from timer process into profile-time ."])
(fset 'profile-find-function #[(fun flist) "??… 	@@=ƒ @A‡Â	A\"‡" [flist fun profile-find-function] 3 "\
Linear search for FUN in FLIST ."])
(fset 'profile-start-function #[(fun) "À	\n\"‰„ ÄÅ	\"ˆ@ÆU„ Ç‰@T\"‚3 ÇÈ\"ˆAÇ	@\"ˆÊ	A\")‡" [profile-find-function fun profile-init-list init-time error "Function %s missing from list" 0 setcar 1 profile-time setcdr] 4 "\
On entry, keep current time for function FUN."])
(byte-code "ÀÀ‡" [1000000 profile-million] 1)
(fset 'profile-update-function #[(fun) "À	\n\"À	\"Ä‰‰ƒ „ ÉÊ	\"ˆË‰@S\"ˆ@ÌU??…“ A@@ZAAZËÌ\"ˆÎÌ\"ˆÌY„c \\SË@\\\"ˆÎA\\\"ˆAW?…“ Ë‰@T\"ˆÎ‰AZ\",‡" [profile-find-function fun profile-init-list profile-time-list nil usec sec accum init-time error "Function %s missing from list" setcar 0 profile-time setcdr profile-million] 5 "\
When the call to the function FUN is finished, add its run time."])
(fset 'profile-a-function #[(fun) "KÁ!G‰@Ä=„ ÅÆ\"ˆÇ‰BBBÇ‰‰BBB	B	\n\nWƒ4 \n\nË\"M*‡" [fun symbol-name funlen def lambda error "To profile: %s must be a user-defined function" 0 profile-time-list profile-init-list profile-max-fun-name profile-fix-fun] 5 "\
Profile the function FUN" "aFunction to profile: "])
(fset 'profile-fix-fun #[(fun def) "À‰‰‰ÁÀ‰	GÊW?…£ 	@	A@	AA@D;…< 	GÊW?…£ ;„J ‚[ ÊËC\"ÌÊ	\"@<ƒr @Í=ƒr ËC\"TÌ	\"Î\n@Ï\"?…£ ËÐCÑÒDDCÔÕËÖC\n\"EC×CØÒDDCÕC&.‡" [nil 2 suffix inter count third second first prefix def 3 nconc nthcdr interactive equal (profile-get-time) (profile-get-time) profile-start-function quote fun setq profile-temp-result- progn (profile-get-time) profile-update-function] 9 "\
Take function FUN and return it fixed for profiling.
DEF is (symbol-function FUN) ."])
(fset 'profile-restore-fun #[(fun) "@KÁ‰‰A‰A@;ƒ \nA\nA@<ƒ( \nA@@Å=ƒ( \nAÆÇ\n\"@‰<…C A@È=…C É\nAA@A\"+‡" [fun nil index body def interactive nthcdr 3 profile-temp-result- setcdr] 4 "\
Restore profiled function FUN to its original state."])
(fset 'profile-finish #[nil "ÀÁ\n\"ˆÃÅÅ‰‡" [mapcar profile-restore-fun profile-time-list 0 profile-max-fun-name nil profile-init-list] 3 "\
Stop profiling functions. Clear all the settings." nil])
(fset 'profile-quit #[nil "À	Â\"‡" [process-send-string profile-timer-process "q\n"] 3 "\
Kill the timer process." nil])
