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

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

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

revision 301, Fri May 28 09:43:39 1999 UTC revision 302, Sat May 29 03:19:59 1999 UTC
# Line 60  Line 60 
60              memo m;              memo m;
61              SOME (thunkify m)              SOME (thunkify m)
62          end handle exn => let          end handle exn => let
63              fun pphist pps =              fun ppb pps =
64                  (PP.add_string pps (General.exnMessage exn);                  (PP.add_newline pps;
65                     PP.add_string pps (General.exnMessage exn);
66                   PP.add_newline pps)                   PP.add_newline pps)
67          in          in
68              error "exception in module initialization code" pphist;              error ("link-time error in " ^ descr) ppb;
69              NONE              NONE
70          end          end
71      in      in
# Line 72  Line 73 
73              case DTS.can'tShare dts of              case DTS.can'tShare dts of
74                  NONE => doit ()                  NONE => doit ()
75                | SOME sl => let                | SOME sl => let
76                      fun pphist [] pps = PP.add_newline pps                      fun ppb pps = let
77                        | pphist (h :: t) pps =                          fun loop [] = ()
78                          (PP.add_newline pps;                            | loop (h :: t) =
79                           PP.add_string pps h;                              (PP.add_string pps h; PP.add_newline pps; loop t)
80                           pphist t pps)                      in
81                            PP.add_newline pps;
82                            PP.add_string pps
83                                    "because of dependence on private module(s):";
84                            PP.add_newline pps;
85                            loop sl
86                        end
87                  in                  in
88                      error                      error ("cannot share state of " ^ descr) ppb;
                       "cannot share state: dependence on non-shareable modules"  
                       (pphist sl);  
89                      NONE                      NONE
90                  end                  end
91          else doit ()          else doit ()
# Line 98  Line 103 
103                                        BinInfo.describe i,                                        BinInfo.describe i,
104                                        fn m => PS.exec_memo_stable (i, m)))                                        fn m => PS.exec_memo_stable (i, m)))
105    
106      fun dosml (i, e as { dyn, dts }, gp) = let      fun dosml (i, e as { dyn, dts }, gp) =
107          fun looksml () =          case PS.exec_look_sml (i, dts, gp) of
108              Option.map thunkify (PS.exec_look_sml (i, dts, gp))              SOME memo => SOME (thunkify memo)
     in  
         case looksml () of  
             SOME d => SOME d  
109            | NONE => execute (PS.bfc_fetch_sml i, e,            | NONE => execute (PS.bfc_fetch_sml i, e,
110                               SmlInfo.share i,                               SmlInfo.share i,
111                               SmlInfo.error gp i EM.COMPLAIN,                               SmlInfo.error gp i EM.COMPLAIN,
112                               SmlInfo.name i,                               SmlInfo.name i,
113                               fn m => PS.exec_memo_sml (i, m))                               fn m => PS.exec_memo_sml (i, m))
114      end      end
 end  

Legend:
Removed from v.301  
changed lines
  Added in v.302

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