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/branches/primop-branch/src/compiler/MAP
ViewVC logotype

Diff of /sml/branches/primop-branch/src/compiler/MAP

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

revision 1470, Mon Mar 29 22:45:55 2004 UTC revision 1471, Mon Mar 29 22:45:55 2004 UTC
# Line 37  Line 37 
37     * modules and signatures, signature matching, functor application     * modules and signatures, signature matching, functor application
38     * code found in directories Semant, ElabData, Elaborator     * code found in directories Semant, ElabData, Elaborator
39    
40    [***
41     What is the distinction between Basics and Semant?  Should these be
42     merged?  How about ElabData?  Some of these files (Semant/types) might
43     also fit there.
44    
45     We have Basics/*, Semant/basics, ElabData/basics, and Elaborator/basics.
46     What is the rationale telling us what goes in each of these places?
47    
48     This complex organization seems to be partially motivated by the goal
49     of separating out any features that are SML/NJ-specific from the generic
50     SML stuff.
51    ***]
52    
53  Basics  Basics
54    
55    mlcomp/    mlcomp/
56        basic front-end data structures (e.g. symbols, stamps, ...)
57      symbol.sig/sml      -- symbols (should be in ElabData?)      symbol.sig/sml      -- symbols (should be in ElabData?)
58      fastsymbol.sig/sml  -- fast symbols (should be in ElabData?)      fastsymbol.sig/sml  -- fast symbols (should be in ElabData?)
59      fixity.sml          -- fixity properties (should be in ElabData)      fixity.sml          -- fixity properties (should be in ElabData)
# Line 46  Line 61 
61      persmap.sml         -- finite maps over pids (persistent stamps)      persmap.sml         -- finite maps over pids (persistent stamps)
62      pidenv.sig/sml      -- environments using pid (persistant stamps) as keys      pidenv.sig/sml      -- environments using pid (persistant stamps) as keys
63      compileexn.sml      -- Compile exception (where used?)      compileexn.sml      -- Compile exception (where used?)
64    miscutil/  (why not in MiscUtil?)  
65      miscutil/
66        some left-over stuff (why not in MiscUtil?  may be redundant)
67      intstrmap.sig/sml   -- int/string maps for use in environments;      intstrmap.sig/sml   -- int/string maps for use in environments;
68                             appears redundant with IntStrMapV defined in                             appears redundant with IntStrMapV defined in
69                             Env (ElabData/basics/env.sml)                             Env (ElabData/basics/env.sml)
70                             used in Tuples, ElabCore, Parse/lex/tokentable.sml.                             used in Tuples, ElabCore, Parse/lex/tokentable.sml.
71    errormsg/    errormsg/
72      errormsg.sig/sml    -- error messages      error messages
73          errormsg.sig/sml    -- error message interface
74    
75    source/    source/
76        -- the source abstraction + file pathnames
77      pathnames.sig/sml   -- file path names      pathnames.sig/sml   -- file path names
78      source.sig/sml      -- input source datastructure      source.sig/sml      -- input source datastructure
79      sourcemap.sig/sml   -- map character positions in source to line no/column      sourcemap.sig/sml   -- map character positions in source to line no/column
80                             supporting #line "declaration"                             supporting #line "declaration"
81    
82    print/    print/
83        -- some printing support (more elsewhere?)
84      pp-wrapper.sml      -- implements old PP interface using new SML/NJ Lib PP      pp-wrapper.sml      -- implements old PP interface using new SML/NJ Lib PP
85      printutil.sig/sml   -- some print utilities (uses Symbol)      printutil.sig/sml   -- some print utilities (uses Symbol)
86      printcontrol.sml    -- print control flags, out, say        printcontrol.sml    -- print control flags; out, say functions
87    
88    stats/    stats/
89      stats.sml           -- facilities for defining timed phases      stats.sml           -- facilities for defining timed phases
90    
91    main/    main/
92      basiccontrol.sml    -- printWarning control flag, topregistry      basiccontrol.sml    -- printWarning control flag, topregistry
93                             uses ControlRegistry, Controls                             uses ControlRegistry, Controls
# Line 72  Line 96 
96  Semant  Semant
97    
98    basics/    basics/
99        -- some "basic" stuff -- why not in Basics?
100      inlinfo.sig/sml     -- inlining info (?)      inlinfo.sig/sml     -- inlining info (?)
101    
102    elaborate/    elaborate/
103      elabmod.sml         -- module level elaboration (why not in Elaborator)      -- module level, top level elaboration (why not under Elaborator?)
104          elabmod.sml         -- module level elaboration
105      elabtop.sml         -- top-level elaboration      elabtop.sml         -- top-level elaboration
106    
107    modules/    modules/
108      evalent.sml      -- mechanisms for module elaboration.  "Entity" is the static-phase
109      instantiate.sml         computation element associated with a module (a kind of expression).
110      instantiate-param.sml         entity expressions are basically a typed lambda calculus
111      module-plists.sml        evalent.sml         -- evaluation of entity expressions
112      sigmatch.sml        instantiate.sml     -- create a free "realization" from a signature
113          instantiate-param.sml  -- like instantiate.sml, but different (how?)
114          module-plists.sml   -- ???
115          sigmatch.sml        -- signature matching (the type-checking of modules)
116    
117    pickle/   -- pickling static environments    pickle/
118        -- pickling static environments (the non-"new" variants should go away?)
119      pickle-sym-pid.sml      pickle-sym-pid.sml
120      unpickle-sym-pid.sml      unpickle-sym-pid.sml
121      pickmod-new.sml      pickmod-new.sml
# Line 93  Line 123 
123      rehash.sml      rehash.sml
124    
125    statenv/    statenv/
126        -- hand made primitive types, constructors, etc.
127      prim.sml      prim.sml
128    
129    types/    types/
130        -- some types stuff [why not in ElabData/types?]
131      cproto.sml      cproto.sml
132      tp-var-info.sml      tp-var-info.sml
133      types-reformat.sml      types-reformat.sml
# Line 103  Line 135 
135    
136    
137  ElabData  ElabData
138      -- data structures and utilities used in elaboration
139    
140    basics/    basics/
141        -- some basic data structures used in elaboration
142      lambdavar.sig/sml      lambdavar.sig/sml
143        lambda variables, the abstract representation of variables, used        lambda variables, the abstract representation of variables, used
144        as roots of dynamic access chains        as roots of dynamic access chains
# Line 120  Line 154 
154        SymPath and InvPath: direct and inverse symbolic paths (selecting        SymPath and InvPath: direct and inverse symbolic paths (selecting
155        module components)        module components)
156      ii.sml [FLINT]      ii.sml [FLINT]
157        FLINT related information for inlining (why is this in elaborator?)          FLINT related information for inlining (why is this in the elaborator?)
158      lambdavar.sig/sml      lambdavar.sig/sml
159        lambda variables, the abstract representation of variables        lambda variables, the abstract representation of variables
160      core-ptnum.sml      core-ptnum.sml
# Line 129  Line 163 
163        defines the special structure symbol "_Core" used to access certain        defines the special structure symbol "_Core" used to access certain
164        special bindings (e.g Match and Bind exceptions)        special bindings (e.g Match and Bind exceptions)
165    
166    syntax/   -- (typed) abstract syntax    syntax/
167        -- (typed) abstract syntax
168      absyn.sig/sml   -- the abstract syntax types      absyn.sig/sml   -- the abstract syntax types
169      varcon.sig/sml  -- variable and data constructor representations      varcon.sig/sml  -- variable and data constructor representations
170      absynutil.sml   -- utility functions for building tuple patterns and expressions      absynutil.sml   -- utility functions for building tuple patterns and expressions
171    
172    types/    -- representing, constructing and manipulating types    types/
173        -- representing, constructing and manipulating types
174      types.sig/sml      -- the representation of SML types      types.sig/sml      -- the representation of SML types
175      typesutil.sig/sml  -- large collection of utility functions for working with types      typesutil.sig/sml  -- large collection of utility functions for working with types
176      tuples.sml         -- fns for constructing tuple and record types      tuples.sml         -- fns for constructing tuple and record types
177      core-basictypes.sml -- building the primitive types and associated values      core-basictypes.sml -- building the primitive types and associated values
178    
179    statenv/    statenv/
180        -- representation and mechanism for static environments
181      bindings.sig/sml   -- the basic binding forms (values, types, signatures, etc.)      bindings.sig/sml   -- the basic binding forms (values, types, signatures, etc.)
182      statenv.sig/sml    -- instantiate generic environments with ML bindings      statenv.sig/sml    -- instantiate generic environments with ML bindings
183      lookup.sig/sml     -- accessing symbols in environments      lookup.sig/sml     -- accessing symbols in environments
# Line 148  Line 185 
185      coreacc.sml        -- access components of the _Core structure      coreacc.sml        -- access components of the _Core structure
186      browse.sml         -- "browsing" the static environment (???)      browse.sml         -- "browsing" the static environment (???)
187    
188    modules/   -- representation of modules    modules/
189        -- representation of modules
190      modules.sig/sml    -- representation of modules and signatures      modules.sig/sml    -- representation of modules and signatures
191      moduleutil.sig/sml -- lots of utility functions for modules      moduleutil.sig/sml -- lots of utility functions for modules
192      moduleid.sml       -- module identities used in Modmaps ???      moduleid.sml       -- module identities used in Modmaps ???
# Line 157  Line 195 
195      epcontext.sml      --      epcontext.sml      --
196    
197    main/    main/
198        -- control flags and contex parameters
199      compinfo.sml       -- elaboration context parameter      compinfo.sml       -- elaboration context parameter
200      edcontrol.sig/sml  -- control flags for ElabData      edcontrol.sig/sml  -- control flags for ElabData
201    
202    
203  Elaborator  Elaborator
204      -- the actual elaboration
205    
206    basics/    basics/
207      elabcontrol.sml    -- Elaborator control flags      elabcontrol.sml    -- Elaborator control flags

Legend:
Removed from v.1470  
changed lines
  Added in v.1471

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