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/compiler/TopLevel/backend/backend-fn.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/TopLevel/backend/backend-fn.sml

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

revision 1136, Tue Mar 12 19:44:02 2002 UTC revision 1137, Tue Mar 12 22:28:55 2002 UTC
# Line 17  Line 17 
17                         type pickle = unit                         type pickle = unit
18                         type hash = unit                         type hash = unit
19                         type pid = PersStamps.persstamp                         type pid = PersStamps.persstamp
20                           type guid = unit
21                         local                         local
22                             val topCount = ref 0                             val topCount = ref 0
23                         in                         in
24                             fun pickUnpick { context, env = newenv,                             fun pickUnpick { context, env = newenv, guid } = let
                                             uniquepid = _ } = let  
25                                 val _ = topCount := !topCount + 1                                 val _ = topCount := !topCount + 1
26                                 val { newenv = newenv', hash,                                 val { newenv = newenv', hash,
27                                       exportLvars, hasExports } =                                       exportLvars, hasExports } =
# Line 29  Line 29 
29                                                          count = !topCount }                                                          count = !topCount }
30                             in                             in
31                                 { pid = (),                                 { pid = (),
                                  fingerprint = (),  
                                  pepper = "",  
32                                   pickle = (),                                   pickle = (),
33                                   exportLvars = exportLvars,                                   exportLvars = exportLvars,
34                                   exportPid = if hasExports then SOME hash                                   exportPid = if hasExports then SOME hash
# Line 56  Line 54 
54                    type pickle = Word8Vector.vector                    type pickle = Word8Vector.vector
55                    type hash = PersStamps.persstamp                    type hash = PersStamps.persstamp
56                    type pid = hash                    type pid = hash
57                      type guid = string
58    
59                    fun pickUnpick { context, env = newenv, uniquepid } = let                    fun pickUnpick { context, env = newenv, guid } = let
60                        val m = GenModIdMap.mkMap context                        val m = GenModIdMap.mkMap context
61                        fun up_context _ = m                        fun up_context _ = m
62                        val { hash, pickle, exportLvars, hasExports } =                        val { hash, pickle, exportLvars, hasExports } =
63                            PickMod.pickleEnv (PickMod.INITIAL m) newenv                            PickMod.pickleEnv (PickMod.INITIAL m) newenv
64                        val (pid, pepper) = uniquepid hash                        val pid = Rehash.addGUID { hash = hash, guid = guid }
65                        val newenv' =                        val newenv' =
66                            UnpickMod.unpickleEnv up_context (pid, pickle)                            UnpickMod.unpickleEnv up_context (pid, pickle)
67                    in                    in
68                        { pid = pid,                        { pid = pid,
                         fingerprint = hash,  
                         pepper = pepper,  
69                          pickle = pickle,                          pickle = pickle,
70                          exportLvars = exportLvars,                          exportLvars = exportLvars,
71                          exportPid = if hasExports then SOME pid else NONE,                          exportPid = if hasExports then SOME pid else NONE,

Legend:
Removed from v.1136  
changed lines
  Added in v.1137

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