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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

revision 889, Thu Jul 19 20:35:20 2001 UTC revision 890, Thu Jul 19 20:38:56 2001 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Lal George
17    Date: 2001/07/19 16:36:29 EDT 2001
18    Tag: george-20010719-simple-cells
19    Description:
20    
21    I have dramatically simplified the interface for CELLS in MLRISC.
22    
23    In summary, the cells interface is broken up into three parts:
24    
25      1. CellsBasis : CELLS_BASIS
26    
27            CellsBasis is a top level structure and common for all
28            architectures.  it contains the definitions of basic datatypes
29            and utility  functions over these types.
30    
31      2. functor Cells() : CELLS
32    
33            Cells generates an interface for CELLS that incorporates the
34            specific resources on the target architecture, such as the
35            presence of special register classes, their number and size,
36            and various useful substructures.
37    
38      3. <ARCH>CELLS
39    
40            e.g. SparcCells: SPARCCELLS
41    
42            <ARCH>CELLS usually contains additional bindings for special
43            registers  on the architecture, such as:
44    
45                    val r0 : cell           (* register zero *)
46                    val y : cell            (* Y register *)
47                    val psr : cell          (* processor status register *)
48                    ...
49    
50            The structure returned by applying the Cells functor is opened
51            in this interface.
52    
53    The main implication of all this is that the datatypes for cells is
54    split between CellsBasis and CELLS -- a fairly simple change for user
55    code.
56    
57    In the old scheme the CELLS interface had a definitional binding of
58    the form:
59    
60            signature CELLS = sig
61    
62               structure CellsBasis = CellsBasis
63    
64               ...
65    
66            end
67    
68    With all the sharing constraints that goes on in MLRISC, this old
69    design  quickly leads to errors such as:
70    
71            "structure definition spec inside of sharing ... "
72    
73    
74    and appears to require an unacceptable amount of sharing and where
75    constraint hackery.
76    
77    I think this error message (the interaction of definitional specs and
78    sharing) requires more explanation on our web page.
79    
80    ----------------------------------------------------------------------
81  Name: Matthias Blume  Name: Matthias Blume
82  Date: 2001/07/19 15:00:00 EDT  Date: 2001/07/19 15:00:00 EDT
83  Tag: blume-20010719-libreorg  Tag: blume-20010719-libreorg

Legend:
Removed from v.889  
changed lines
  Added in v.890

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