Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/compiler/MiscUtil/profile/profile-fn.sml
ViewVC logotype

Annotation of /sml/trunk/src/compiler/MiscUtil/profile/profile-fn.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 245 - (view) (download)
Original Path: sml/branches/SMLNJ/src/compiler/MiscUtil/profile/profile-fn.sml

1 : monnier 245 (* profile-fn.sml
2 :     *
3 :     * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
4 :     *
5 :     * User interface for controling profiling.
6 :     *
7 :     *)
8 :    
9 :     functor ProfileFn (ProfEnv: PROF_ENV) : PROFILE =
10 :     struct
11 :    
12 :     structure PC = SMLofNJ.Internals.ProfControl
13 :    
14 :     val report = Profile.report
15 :     val reportAll = Profile.reportAll
16 :     val reportData = Profile.reportData
17 :    
18 :     val profMode : bool ref = SMLofNJ.Internals.ProfControl.profMode
19 :    
20 :     local
21 :     val pervDone = ref false
22 :     in
23 :     fun doPerv() =
24 :     if !pervDone then ()
25 :     else (
26 :     pervDone := true;
27 :     Control.Print.say "Creating profiled version of standard library\n";
28 :     ProfEnv.replace EnvRef.pervasive)
29 :     end
30 :    
31 :     fun setProfMode true = (doPerv(); profMode := true)
32 :     | setProfMode false = (profMode := false)
33 :     fun getProfMode () = !profMode
34 :    
35 :     fun setTimingMode true = PC.profileOn()
36 :     | setTimingMode false = PC.profileOff()
37 :     val getTimingMode = PC.getTimingMode
38 :    
39 :     val reset = Profile.reset
40 :    
41 :     end;
42 :    
43 :    
44 :     (*
45 :     * $Log$
46 :     *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0