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

Diff of /sml/trunk/HISTORY

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

revision 878, Wed Jul 18 17:43:27 2001 UTC revision 879, Thu Jul 19 18:59:38 2001 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume  Name: Matthias Blume
17    Date: 2001/07/19 15:00:00 EDT
18    Tag: blume-20010719-libreorg
19    Description:
20    
21    This update puts together a fairly extensive but straightforward change
22    to the way the libraries that implement the interactive system are
23    organized:
24    
25       The biggest change is the elimination of structure Compiler.  As a
26       replacement for this structure, there is now a CM library
27       (known as $smlnj/compiler.cm or $smlnj/compiler/current.cm)
28       that exports all the substructures of the original structure Compiler
29       directly.  So instead of saying Compiler.Foo.bar one now simply
30       says Foo.bar.  (The CM libraries actually export a collection of
31       structures that is richer than the collection of substructures of
32       structure Compiler.)
33    
34       To make the transition smooth, there is a separate library called
35       $smlnj/compiler/compiler.cm which puts together and exports the
36       original structure Compiler (or at least something very close to it).
37    
38       There are five members of the original structure Compiler
39       that are not exported directly but which instead became members
40       of a new structure Backend (described by signature BACKEND).  These are:
41       structure Profile (: PROFILE), structure Compile (: COMPILE), structure
42       Interact (: INTERACT), structure Machine (: MACHINE), and val
43       architecture (: string).
44    
45       Structure Compiler.Version has become structure CompilerVersion.
46    
47       Cross-compilers for alpha32, hppa, ppc, sparc, and x86 are provided
48       by $smlnj/compiler/<arch>.cm where <arch> is alpha32, hppa, ppc, sparc,
49       or x86, respectively.
50       Each of these exports the same frontend structures that
51       $smlnj/compiler.cm exports.  But they do not have a structure Backend
52       and instead export some structure <Arch>Backend where <Arch> is Alpha32,
53       Hppa, PPC, Sparc, or X86, respectively.
54    
55       Library $smlnj/compiler/all.cm exports the union of the exports of
56       $smlnj/compiler/<arch>.cm
57    
58       There are no structures <Arch>Compiler anymore, use
59       $smlnj/compiler/<arch>.cm instead.
60    
61       Library host-compiler-0.cm is gone.  Instead, the internal library
62       that instantiates CM is now called cm0.cm.  Selection of the host
63       compiler (backend) is no longer done here but. (Responsibility for it
64       now lies with $smlnj/compiler/current.cm.  This seems to be more
65       logical.)
66    
67       Many individual files have been moved or renamed.  Some files have
68       been split into multiple files, and some "dead" files have been deleted.
69    
70    Aside from these changes to library organization, there are also changes
71    to the way the code itself is organized:
72    
73       Structure Binfile has been re-implemented in such a way that it no
74       longer needs any knowledge of the compiler.  It exclusively deals
75       with the details of binfile layout.  It no longer invokes the
76       compiler (for the purpose of creating new prospective binfile
77       content), and it no longer has any knowledge of how to interpret
78       pickles.
79    
80       Structure Compile (: COMPILE) has been stripped down to the bare
81       essentials of compilation.  It no longer deals with linking/execution.
82       The interface has been cleaned up considerably.
83    
84       Utility routines for dealing with linking and execution have been
85       moved into their own substructures.
86    
87       (The ultimate goal of these changes is to provide a light-weight
88       binfile loader/linker (at least for, e.g., stable libraries) that
89       does not require CM or the compiler to be present.)
90    
91    CM documentation has been updated to reflect the changes to library
92    organization.
93    
94    ----------------------------------------------------------------------
95    Name: Matthias Blume
96  Date: 2001/07/10 17:30:00 EDT  Date: 2001/07/10 17:30:00 EDT
97  Tag: Release_110_34  Tag: Release_110_34
98  Description:  Description:

Legend:
Removed from v.878  
changed lines
  Added in v.879

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