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

SCM Repository

[smlnj] Diff of /sml/trunk/src/cm/main/cm-boot.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/main/cm-boot.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 734, Sun Nov 19 05:27:41 2000 UTC revision 735, Tue Nov 21 12:15:55 2000 UTC
# Line 183  Line 183 
183                    NONE => []                    NONE => []
184                  | SOME f => [f]                  | SOME f => [f]
185                val p = #get StdConfig.pathcfgspec () :: p                val p = #get StdConfig.pathcfgspec () :: p
186                fun processOne f = SrcPath.processSpecFile (penv, f)                fun processOne f = let
187                    handle _ => ()                    val work =  SrcPath.processSpecFile
188                                      { env = penv, specfile = f, say = Say.say }
189                  in
190                      SafeIO.perform { openIt = fn () => TextIO.openIn f,
191                                       closeIt = TextIO.closeIn,
192                                       work = work,
193                                       cleanup = fn _ => () }
194                  end handle _ => ()
195            in            in
196                app processOne p;                app processOne p;
197                SrcPath.sync ()                SrcPath.sync ()
# Line 235  Line 242 
242                before dropPickles ()                before dropPickles ()
243            end            end
244    
245            and load_plugin context x = let            and load_plugin' p = let
246                val _ = Say.vsay ["[attempting to load plugin ", x, "]\n"]                val d = SrcPath.descr p
247                fun badname s = Say.say ["[bad plugin name: ", s, "]\n"]                val _ = Say.vsay ["[attempting to load plugin ", d, "]\n"]
248                fun mkSrcPath s =                val gr = GroupReg.new ()
                   SrcPath.file  
                       (SrcPath.standard { env = penv, err = badname }  
                                         { context = context, spec = s })  
249                val success =                val success =
250                    run mkSrcPath NONE (make_runner false) x handle _ => false                    ((case Parse.parse (parse_arg (gr, NONE, p)) of
251                            NONE => false
252                          | SOME (g, gp) => make_runner false gp g)
253                       before dropPickles ())
254                      handle _ => false
255            in            in
256                if success then                if success then
257                    Say.vsay ["[plugin ", x, " loaded successfully]\n"]                    Say.vsay ["[plugin ", d, " loaded successfully]\n"]
258                else                else
259                    Say.vsay ["[unable to load plugin ", x, "]\n"];                    Say.vsay ["[unable to load plugin ", d, "]\n"];
260                success                success
261            end            end
262    
263              and load_plugin context s = let
264                  fun badname s = Say.say ["[bad plugin name: ", s, "]\n"]
265                  val pp = SrcPath.standard { env = penv, err = badname }
266                                            { context = context, spec = s }
267              in
268                  load_plugin' (SrcPath.file pp)
269              end
270    
271            fun cwd_load_plugin x = load_plugin (SrcPath.cwd ()) x            fun cwd_load_plugin x = load_plugin (SrcPath.cwd ()) x
272    
273            fun stabilize_runner gp g = true            fun stabilize_runner gp g = true
# Line 635  Line 651 
651          end          end
652    
653          structure Server = struct          structure Server = struct
654              type server = Servers.server              type server = Servers.server_handle
655              fun start x = Servers.start x              fun start x = Servers.start x
656                            before SrcPath.scheduleNotification ()                            before SrcPath.scheduleNotification ()
657              val stop = Servers.stop              val stop = Servers.stop
# Line 656  Line 672 
672      end      end
673    
674      structure Tools = ToolsFn (val load_plugin = cwd_load_plugin      structure Tools = ToolsFn (val load_plugin = cwd_load_plugin
675                                   val load_plugin' = load_plugin'
676                                 val penv = penv)                                 val penv = penv)
677    
678      val load_plugin = load_plugin      val load_plugin = load_plugin

Legend:
Removed from v.734  
changed lines
  Added in v.735

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