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 1723, Mon Dec 13 20:09:39 2004 UTC revision 1724, Mon Dec 13 20:45:51 2004 UTC
# Line 336  Line 336 
336                        NONE => fnpolicy                        NONE => fnpolicy
337                      | SOME ao => FilenamePolicy.colocate_generic ao                      | SOME ao => FilenamePolicy.colocate_generic ao
338                fun sourcesOf ((p, gth, _), (v, a)) =                fun sourcesOf ((p, gth, _), (v, a)) =
339                    if SrcPathSet.member (v, p) then (v, a)                    let val v' = SrcPathSet.add (v, p)
                   else  
                       let val v = SrcPathSet.add (v, p)  
340                        in case gth () of                        in case gth () of
341                               GG.ERRORGROUP => (v, a)                           GG.ERRORGROUP => (v', a)
342                             | GG.GROUP { kind, sources, ... } => let                         | GG.GROUP { kind, sources, ... } =>
343                                   fun add (p, x, a) =                           let fun add (p, x, a) =
344                                       StringMap.insert                                   StringMap.insert (a, SrcPath.osstring p, x)
345                                           (a, SrcPath.osstring p, x)                               fun sg l =
346                                   val a = SrcPathMap.foldli add a sources                                   if SrcPathSet.member (v, p) then (v, a)
347                                   fun sg subgroups =                                   else foldl sourcesOf
348                                       foldl sourcesOf (v, a) subgroups                                              (v', SrcPathMap.foldli
349                               in                                                       add a sources)
350                                   case kind of                                              l
351                             in case kind of
352                                       GG.LIB { kind, version } =>                                       GG.LIB { kind, version } =>
353                                       (case kind of                                       (case kind of
354                                            GG.STABLE _ => let                                       GG.STABLE _ =>
355                                                val file = SrcPath.osstring p                                       let val f = SrcPath.osstring p
356                                                val (a, x) =                                           val (a, x) = StringMap.remove (a, f)
357                                                    StringMap.remove (a, file)                                           val sf = FilenamePolicy.mkStableName
                                               val sfile =  
                                                   FilenamePolicy.mkStableName  
358                                                        policy (p, version)                                                        policy (p, version)
359                                            in                                       in (v', StringMap.insert (a, sf, x))
                                               (v,  
                                                StringMap.insert (a, sfile, x))  
360                                            end                                            end
361                                          | GG.DEVELOPED d => sg (#subgroups d))                                          | GG.DEVELOPED d => sg (#subgroups d))
362                                     | GG.NOLIB n => sg (#subgroups n)                                     | GG.NOLIB n => sg (#subgroups n)
# Line 381  Line 376 
376                                                derived = false })))                                                derived = false })))
377                         fun add (s, { class, derived }, l) =                         fun add (s, { class, derived }, l) =
378                             { file = s, class = class, derived = derived } :: l                             { file = s, class = class, derived = derived } :: l
379                     in                     in SOME (StringMap.foldli add [] sm)
                        SOME (StringMap.foldli add [] sm)  
380                     end                     end
381                   | _ => NONE)                   | _ => NONE)
382                before dropPickles ()                before dropPickles ()

Legend:
Removed from v.1723  
changed lines
  Added in v.1724

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