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/compile/compile.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/compile/compile.sml

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

revision 737, Fri Nov 24 08:43:56 2000 UTC revision 757, Thu Dec 21 14:54:56 2000 UTC
# Line 15  Line 15 
15      structure DE = GenericVC.DynamicEnv      structure DE = GenericVC.DynamicEnv
16      structure PP = PrettyPrint      structure PP = PrettyPrint
17      structure EM = GenericVC.ErrorMsg      structure EM = GenericVC.ErrorMsg
18        structure SF = GenericVC.SmlFile
19    
20      type pid = Pid.persstamp      type pid = Pid.persstamp
21      type statenv = E.staticEnv      type statenv = E.staticEnv
# Line 227  Line 228 
228                                 work = useStream,                                 work = useStream,
229                                 cleanup = fn _ => () })                                 cleanup = fn _ => () })
230                      fun save bfc = let                      fun save bfc = let
231                          fun writer s =                          fun writer s = let
232                              (BF.write { stream = s, content = bfc,                              val sz = BF.write { stream = s, content = bfc,
233                                          nopickle = false };                                                  nopickle = false }
234                               Say.vsay ["[wrote ", binname, "]\n"])                              fun info ((sel, lab), (l, t)) =
235                                    case sel sz of
236                                        0 => (l, t)
237                                      | n => (lab :: ": " :: Int.toString n ::
238                                              t :: " " :: l,
239                                              ",")
240                            in
241                                Say.vsay ("[" ::
242                                          #1 (foldr info
243                                                    (["(bytes)]\n"], " ")
244                                                    [(#code, "code"),
245                                                     (#data, "data"),
246                                                     (#env, "env"),
247                                                     (#inlinfo, "inlinable")]))
248                            end
249                          fun cleanup _ =                          fun cleanup _ =
250                              OS.FileSys.remove binname handle _ => ()                              OS.FileSys.remove binname handle _ => ()
251                      in                      in
# Line 279  Line 294 
294                              save bfc;                              save bfc;
295                              storeBFC (i, bfc);                              storeBFC (i, bfc);
296                              SOME memo                              SOME memo
297                          end handle _ => fail () (* catch elaborator exn *)                          end handle (EM.Error | SF.Compile _)
298                                       (* At this point we handle only
299                                        * explicit compiler bugs and ordinary
300                                        * compilation errors because for those
301                                        * there will already have been
302                                        * explanatory messages.  Everything
303                                        * else "falls through" and will be
304                                        * treated at top level. *)
305                                       => fail ()
306                  end (* compile_here *)                  end (* compile_here *)
307                  fun notlocal () = let                  fun notlocal () = let
308                      val _ = youngest := TStamp.max (!youngest,                      val _ = youngest := TStamp.max (!youngest,

Legend:
Removed from v.737  
changed lines
  Added in v.757

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