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 845, Thu Jun 21 16:25:49 2001 UTC revision 879, Thu Jul 19 18:59:38 2001 UTC
# Line 14  Line 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:
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:
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.)
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).
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).
45       Structure Compiler.Version has become structure CompilerVersion.
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.
55       Library $smlnj/compiler/all.cm exports the union of the exports of
56       $smlnj/compiler/<arch>.cm
58       There are no structures <Arch>Compiler anymore, use
59       $smlnj/compiler/<arch>.cm instead.
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.)
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.
70    Aside from these changes to library organization, there are also changes
71    to the way the code itself is organized:
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.
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.
84       Utility routines for dealing with linking and execution have been
85       moved into their own substructures.
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.)
91    CM documentation has been updated to reflect the changes to library
92    organization.
94    ----------------------------------------------------------------------
95    Name: Matthias Blume
96    Date: 2001/07/10 17:30:00 EDT
97    Tag: Release_110_34
98    Description:
100    Minor tweak to 110.34 (re-tagged):
102      - README.html file added to CVS repository
103      - runtime compiles properly under FreeBSD 3.X and 4.X
105    ----------------------------------------------------------------------
106    Name: Matthias Blume
107    Date: 2001/07/10 17:30:00 EDT
108    Tag: Release_110_34
109    Description:
111    New version number (110.34). New bootfiles.
113    ----------------------------------------------------------------------
114    Name: Matthias Blume
115    Date: 2001/07/09 16:00:00 EDT
116    Tag: blume-20010709-more-varargs
117    Description:
119    I changed the handling of varargs in ml-nlffigen again:
120    The ellipsis ... will now simply be ignored (with an accompanying warning).
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.)
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.
132    ----------------------------------------------------------------------
133    Name: Matthias Blume
134    Date: 2001/07/09 11:25:00 EDT
135    Tag: blume-20010709-varargs
136    Description:
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.
147    ----------------------------------------------------------------------
148    Name: Matthias Blume
149    Date: 2001/06/27 15:10:00 EDT
150    Tag: blume-20010627-concur
151    Description:
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.)
162    There is also another minor update to the CM manual.
164    ----------------------------------------------------------------------
165    Name: Matthias Blume
166    Date: 2001/06/26 16:15:00 EDT
167    Tag: blume-20010626-cmdoc
168    Description:
170    Minor typo fixed in CM manual (syntax diagram for libraries).
172    ----------------------------------------------------------------------
173    Name: Matthias Blume
174    Date: 2001/06/25 22:55:00 EDT
175    Tag: blume-20010625-x86pc
176    Description:
178    Fixed a nasty bug in the X86 assembly code that caused signal
179    handlers to fail (crash) randomly.
181    ----------------------------------------------------------------------
182    Name: Matthias Blume
183    Date: 2001/06/25 12:05:00 EDT
184    Tag: blume-20010625-nlffigen
185    Description:
187    This update fixes a number of minor bugs in ml-nlffigen as reported by
188    Nick Carter <nbc@andrew.cmu.edu>.
190      1. Silly but ok typedefs of the form "typedef void myvoid;" are now accepted.
191      2. Default names for generated files are now derived from the name of
192         the C file *without its directory*.  In particular, this causes generated
193         files to be placed locally even if the C file is in some system directory.
194      3. Default names for generated signatures and structures are also derived
195         from the C file name without its directory.  This avoids silly things
196         like "structure GL/GL".
197         (Other silly names are still possible because ml-nlffigen does not do
198          a thorough check of whether generated names are legal ML identifiers.
199          When in doubt, use command line arguments to force particular names.)
201    ----------------------------------------------------------------------
202    Name: Matthias Blume
203  Date: 2001/06/21 12:25:00 EDT  Date: 2001/06/21 12:25:00 EDT
204  Tag: blume-20010621-eXene  Tag: blume-20010621-eXene
205  Description:  Description:

Removed from v.845  
changed lines
  Added in v.879

ViewVC Help
Powered by ViewVC 1.0.0