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 715, Thu Nov 2 07:51:04 2000 UTC revision 716, Sat Nov 4 05:42:35 2000 UTC
# Line 364  Line 364 
364                              make = make }                              make = make }
365            end            end
366    
367              (* This function works on behalf of the ml-build script.
368               * Having it here avoids certain startup-costs and also
369               * keeps ML code together.  (It used to be part of the
370               * script, but that proved difficult to maintain.) *)
371              fun mlbuild buildargs =
372                  OS.Process.exit
373                  (case buildargs of
374                       [root, cmfile, heap, listfile, link] =>
375                       (case mk_standalone NONE { project = root,
376                                                  wrapper = cmfile,
377                                                  target = heap } of
378                            NONE => (Say.say ["Compilation failed.\n"];
379                                     OS.Process.failure)
380                         | SOME [] => (Say.say ["Heap was already up-to-date.\n"];
381                                       OS.Process.success)
382                         | SOME l => let
383                               val s = TextIO.openOut listfile
384                               fun wr str = TextIO.output (s, str ^ "\n")
385                               val n = length l
386                               fun maxsz (s, n) = Int.max (size s, n)
387                               val m = foldl maxsz 0 l
388                           in
389                               wr (concat ["%", Int.toString n, " ",
390                                           Int.toString m]);
391                               app wr l;
392                               TextIO.closeOut s;
393                               OS.Process.system (concat [link,
394                                                          " @SMLboot=", listfile])
395                           end
396                           handle _ => OS.Process.failure)
397                     | _ => (Say.say ["bad arguments to @CMbuild\n"];
398                             OS.Process.failure))
399    
400            fun al_ginfo () = { param = param (),            fun al_ginfo () = { param = param (),
401                                groupreg = al_greg,                                groupreg = al_greg,
402                                errcons = EM.defaultConsumer (),                                errcons = EM.defaultConsumer (),
# Line 549  Line 582 
582                | carg (_, f, mk) = p (f, mk,                | carg (_, f, mk) = p (f, mk,
583                                   String.map Char.toLower                                   String.map Char.toLower
584                                              (getOpt (OS.Path.ext f, "<none>")))                                              (getOpt (OS.Path.ext f, "<none>")))
585              fun arg ("-a", _) = autoload  
586                | arg ("-m", _) = make              fun args ("-a" :: rest, _) = args (rest, autoload)
587                | arg (f, mk) = (carg (String.substring (f, 0, 2), f, mk)                | args ("-m" :: rest, _) = args (rest, make)
588                  | args ("@CMbuild" :: rest, _) = mlbuild rest
589                  | args (f :: rest, mk) =
590                    (carg (String.substring (f, 0, 2), f, mk)
591                                 handle General.Subscript => ();                                 handle General.Subscript => ();
592                                 mk)                   args (rest, mk))
593                  | args ([], _) = ()
594          in          in
595              case SMLofNJ.getArgs () of              case SMLofNJ.getArgs () of
596                  ["@CMslave"] => (#set StdConfig.verbose false; slave ())                  ["@CMslave"] => (#set StdConfig.verbose false; slave ())
597                | l => ignore (foldl arg autoload l)                | l => args (l, autoload)
598          end          end
599      in      in
600          initTheValues (bootdir, de, er,          initTheValues (bootdir, de, er,

Legend:
Removed from v.715  
changed lines
  Added in v.716

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