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 847, Mon Jun 25 16:11:22 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
97    Tag: Release_110_34
98    Description:
99    
100    Minor tweak to 110.34 (re-tagged):
101    
102      - README.html file added to CVS repository
103      - runtime compiles properly under FreeBSD 3.X and 4.X
104    
105    ----------------------------------------------------------------------
106    Name: Matthias Blume
107    Date: 2001/07/10 17:30:00 EDT
108    Tag: Release_110_34
109    Description:
110    
111    New version number (110.34). New bootfiles.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume
115    Date: 2001/07/09 16:00:00 EDT
116    Tag: blume-20010709-more-varargs
117    Description:
118    
119    I changed the handling of varargs in ml-nlffigen again:
120    The ellipsis ... will now simply be ignored (with an accompanying warning).
121    
122    The immediate effect is that you can actually call a varargs function
123    from ML -- but you can't actually supply any arguments beyond the ones
124    specified explicitly.  (For example, you can call printf with its format
125    string, but you cannot pass additional arguments.)
126    
127    This behavior is only marginally more useful than the one before, but
128    it has the advantage that a function or, more importantly, a function
129    type never gets dropped on the floor, thus avoiding follow-up problems with
130    other types that refer to the offending one.
131    
132    ----------------------------------------------------------------------
133    Name: Matthias Blume
134    Date: 2001/07/09 11:25:00 EDT
135    Tag: blume-20010709-varargs
136    Description:
137    
138    1. ckit-lib.cm now exports structure Error
139    2. ml-nlffigen reports occurences of "..." (i.e., varargs function types)
140       with a warning accompanied by a source location.  Moreover, it
141       merely skips the offending function or type and proceeds with the
142       rest of its work.u  As a result, one can safely feed C code containing
143       "..." to ml-nlffigen.
144    3. There are some internal improvements to CM, providing slightly
145       more general string substitutions in the tools subsystem.
146    
147    ----------------------------------------------------------------------
148    Name: Matthias Blume
149    Date: 2001/06/27 15:10:00 EDT
150    Tag: blume-20010627-concur
151    Description:
152    
153    Fixed a small bug in CM's handling of parallel compilation.
154    (You could observe the bug by Control-C-interrupting an ordinary
155    CMB.make or CM.stabilize and then attaching some compile servers.
156    The result was that all of a sudden the previously interrupted
157    compilation would continue on its own.  This was because of
158    an over-optimization: CM did not bother to clean out certain queues
159    when no servers were attached "anyway", resulting in the contents
160    of these queues to grab control when new servers did get attached.)
161    
162    There is also another minor update to the CM manual.
163    
164    ----------------------------------------------------------------------
165    Name: Matthias Blume
166    Date: 2001/06/26 16:15:00 EDT
167    Tag: blume-20010626-cmdoc
168    Description:
169    
170    Minor typo fixed in CM manual (syntax diagram for libraries).
171    
172    ----------------------------------------------------------------------
173    Name: Matthias Blume
174    Date: 2001/06/25 22:55:00 EDT
175    Tag: blume-20010625-x86pc
176    Description:
177    
178    Fixed a nasty bug in the X86 assembly code that caused signal
179    handlers to fail (crash) randomly.
180    
181    ----------------------------------------------------------------------
182    Name: Matthias Blume
183  Date: 2001/06/25 12:05:00 EDT  Date: 2001/06/25 12:05:00 EDT
184  Tag: blume-20010625-nlffigen  Tag: blume-20010625-nlffigen
185  Description:  Description:

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

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