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 836, Fri May 25 19:28:51 2001 UTC revision 876, Wed Jul 11 15:42:20 2001 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume  Name: Matthias Blume
17    Date: 2001/07/10 17:30:00 EDT
18    Tag: Release_110_34
19    Description:
20    
21    Minor tweak to 110.34 (re-tagged):
22    
23      - README.html file added to CVS repository
24      - runtime compiles properly under FreeBSD 3.X and 4.X
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume
28    Date: 2001/07/10 17:30:00 EDT
29    Tag: Release_110_34
30    Description:
31    
32    New version number (110.34). New bootfiles.
33    
34    ----------------------------------------------------------------------
35    Name: Matthias Blume
36    Date: 2001/07/09 16:00:00 EDT
37    Tag: blume-20010709-more-varargs
38    Description:
39    
40    I changed the handling of varargs in ml-nlffigen again:
41    The ellipsis ... will now simply be ignored (with an accompanying warning).
42    
43    The immediate effect is that you can actually call a varargs function
44    from ML -- but you can't actually supply any arguments beyond the ones
45    specified explicitly.  (For example, you can call printf with its format
46    string, but you cannot pass additional arguments.)
47    
48    This behavior is only marginally more useful than the one before, but
49    it has the advantage that a function or, more importantly, a function
50    type never gets dropped on the floor, thus avoiding follow-up problems with
51    other types that refer to the offending one.
52    
53    ----------------------------------------------------------------------
54    Name: Matthias Blume
55    Date: 2001/07/09 11:25:00 EDT
56    Tag: blume-20010709-varargs
57    Description:
58    
59    1. ckit-lib.cm now exports structure Error
60    2. ml-nlffigen reports occurences of "..." (i.e., varargs function types)
61       with a warning accompanied by a source location.  Moreover, it
62       merely skips the offending function or type and proceeds with the
63       rest of its work.u  As a result, one can safely feed C code containing
64       "..." to ml-nlffigen.
65    3. There are some internal improvements to CM, providing slightly
66       more general string substitutions in the tools subsystem.
67    
68    ----------------------------------------------------------------------
69    Name: Matthias Blume
70    Date: 2001/06/27 15:10:00 EDT
71    Tag: blume-20010627-concur
72    Description:
73    
74    Fixed a small bug in CM's handling of parallel compilation.
75    (You could observe the bug by Control-C-interrupting an ordinary
76    CMB.make or CM.stabilize and then attaching some compile servers.
77    The result was that all of a sudden the previously interrupted
78    compilation would continue on its own.  This was because of
79    an over-optimization: CM did not bother to clean out certain queues
80    when no servers were attached "anyway", resulting in the contents
81    of these queues to grab control when new servers did get attached.)
82    
83    There is also another minor update to the CM manual.
84    
85    ----------------------------------------------------------------------
86    Name: Matthias Blume
87    Date: 2001/06/26 16:15:00 EDT
88    Tag: blume-20010626-cmdoc
89    Description:
90    
91    Minor typo fixed in CM manual (syntax diagram for libraries).
92    
93    ----------------------------------------------------------------------
94    Name: Matthias Blume
95    Date: 2001/06/25 22:55:00 EDT
96    Tag: blume-20010625-x86pc
97    Description:
98    
99    Fixed a nasty bug in the X86 assembly code that caused signal
100    handlers to fail (crash) randomly.
101    
102    ----------------------------------------------------------------------
103    Name: Matthias Blume
104    Date: 2001/06/25 12:05:00 EDT
105    Tag: blume-20010625-nlffigen
106    Description:
107    
108    This update fixes a number of minor bugs in ml-nlffigen as reported by
109    Nick Carter <nbc@andrew.cmu.edu>.
110    
111      1. Silly but ok typedefs of the form "typedef void myvoid;" are now accepted.
112      2. Default names for generated files are now derived from the name of
113         the C file *without its directory*.  In particular, this causes generated
114         files to be placed locally even if the C file is in some system directory.
115      3. Default names for generated signatures and structures are also derived
116         from the C file name without its directory.  This avoids silly things
117         like "structure GL/GL".
118         (Other silly names are still possible because ml-nlffigen does not do
119          a thorough check of whether generated names are legal ML identifiers.
120          When in doubt, use command line arguments to force particular names.)
121    
122    ----------------------------------------------------------------------
123    Name: Matthias Blume
124    Date: 2001/06/21 12:25:00 EDT
125    Tag: blume-20010621-eXene
126    Description:
127    
128    eXene now compiles and (sort of) works again.
129    
130    The library name (for version > 110.33) is $/eXene.cm.
131    
132    I also added an new example in src/eXene/examples/nbody.  See the
133    README file there for details.
134    
135    ----------------------------------------------------------------------
136    Name: Matthias Blume
137    Date: 2001/06/20 16:40:00 EDT
138    Tag: blume-20010620-cml
139    Description:
140    
141    CML now compiles and works again.
142    
143    Libraries (for version > 110.33):
144    
145      $cml/cml.cm            Main CML library.
146      $cml/basis.cm          CML's version of $/basis.cm.
147      $cml/cml-internal.cm   Internal helper library.
148      $cml/core-cml.cm       Internal helper library.
149      $cml-lib/trace-cml.cm  Tracing facility.
150      $cml-lib/smlnj-lib.cm  CML's version of $/smlnj-lib.cm
151    
152    The installer (config/install.sh) has been taught how to properly
153    install this stuff.
154    
155    ----------------------------------------------------------------------
156    Name: Matthias Blume
157    Date: 2001/06/19 17:55:00 EDT
158    Tag: blume-20010619-instantiate
159    Description:
160    
161    This un-breaks the fix for bug 1432.
162    (The bug was originally fixed in 110.9 but I broke it again some
163    time after that.)
164    
165    ----------------------------------------------------------------------
166    Name: Matthias Blume
167    Date: 2001/06/19 17:25:00 EDT
168    Tag: blume-20010619-signals
169    Description:
170    
171    This should (hopefully) fix the long-standing signal handling bug.
172    (The runtime system was constructing a continuation record with an
173    incorrect descriptor which would cause the GC to drop data on the floor...)
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume
177    Date: 2001/06/15 15:05:00 EDT
178    Tag: blume-20010615-moresparc
179    Description:
180    
181    Here is a short late-hour update related to Sparc c-calls:
182    
183     -- made handling of double-word arguments a bit smarter
184    
185     -- instruction selection phase tries to collapse certain clumsily
186        constructed ML-Trees; typical example:
187    
188            ADD(ty,ADD(_,e,LI d1),LI d2)  ->  ADD(ty,e,LI(d1+d2))
189    
190        This currently has no further impact on SML/NJ since mlriscGen does
191        not seem to generate such patterns in the first place, and c-calls
192        (which did generate them in the beginning) has meanwhile been fixed
193        so as to avoid them as well.
194    
195    ----------------------------------------------------------------------
196    Name: Matthias Blume
197    Date: 2001/06/15 15:05:00 EDT
198    Tag: blume-20010615-sparc
199    Description:
200    
201    The purpose of this update is to provide an implementation of NLFFI
202    on Sparc machines.
203    
204    Here are the changes in detail:
205    
206       * src/MLRISC/sparc/c-calls/sparc-c-calls.sml is a new file containing
207       the Sparc implementation of the c-calls API.
208       * The Sparc backend of SML/NJ has been modified to uniformely use %fp
209       for accessing the ML frame.  Thus, we have a real frame pointer and
210       can freely modify %sp without need for an omit-frame-ptr phase.
211       The vfp logic in src/compiler/CodeGen/* has been changed to accomodate
212       this case.
213       * ml-nlffigen has been taught to produce code for different architectures
214       and calling conventions.
215       * In a way similar to what was done in the x86 case, the Sparc
216       backend uses its own specific extension to mltree.  (For example,
217       it needs to be able to generate UNIMP instructions which are part
218       of the calling convention.)
219       * ml-nlffi-lib was reorganized to make it more modular (in particular,
220       to make it easier to plug in new machine- and os-dependent parts).
221    
222    There are some other fairly unrelated bug fixes and cleanups as well:
223    
224       * I further hacked the .cm files for MLRISC tools (like MDLGen) so
225       that they properly share their libraries with existing SML/NJ libraries.
226       * I fixed a minor cosmetic bug in CM, supressing certain spurious
227       follow-up error messages.
228       * Updates to CM/CMB documentation.
229    
230    TODO items:
231    
232       * MLRISC should use a different register as its asmTemp on the Sparc.
233         (The current %o2 is a really bad choice because it is part of the
234         calling conventions, so things might interfere in unexpected ways.)
235    
236    ----------------------------------------------------------------------
237    Name: Matthias Blume
238    Date: 2001/06/07
239    Tag: blume-20010607-calls
240    Description:
241    
242    A number of internal changes related to C calls and calling conventions:
243    
244    1. ML-Tree CALL statements now carry a "pops" field.  It indicates the
245       number of bytes popped implicitly (by the callee).  In most cases
246       this field is 0 but on x86/win32 it is some non-zero value.  This
247       is information provided for the benefit of the "omit-frameptr" pass.
248    2. The CALL instruction on the x86 carries a similar "pops" field.
249       The instruction selection phase copies its value from the ML-Tree
250       CALL statement.
251    3. On all other architectures, the instruction selection phase checks
252       whether "pops=0" and complains if not.
253    4. The c-calls implementation for x86 now accepts two calling conventions:
254       "ccall" and "stdcall".  When "ccall" is selected, the caller cleans
255       up after the call and pops is set to 0.  For "stdcall", the caller
256       does nothing, leaving the cleanup to the callee; pops is set to
257       the number of bytes that were pushed onto the stack.
258    5. The cproto decoder (compiler/Semant/types/cproto.sml) now can
259       distinguish between "ccall" and "stdcall".
260    6. The UNIMP instruction has been added to the supported Sparc instruction
261       set. (This is needed for implementing the official C calling convention
262       on this architecture.)
263    7. I fixed some of the .cm files under src/MLRISC/Tools to make them
264       work with the latest CM.
265    
266    ----------------------------------------------------------------------
267    Name: Matthias Blume
268    Date: 2001/06/05 15:10:00 EDT
269    Tag: blume-20010605-cm-index
270    Description:
271    
272    0. The "lambdasplit" parameter for class "sml" in CM has been documented.
273    
274    1. CM can now generate "index files".  These are human-readable files
275       that list on a per-.cm-file basis each toplevel symbol defined or
276       imported.  The location of the index file for
277       <p>/<d>.cm is <p>/CM/INDEX/<d>.cm.
278       To enable index-file generation, set CM.Control.generate_index to true
279       or export an environment-symbol: export CM_GENERATE_INDEX=true.
280    
281       The CM manual has been updated accordingly.
282    
283    2. I made some slight modifications to the c-calls API in MLRISC.
284    
285         a) There is now a callback to support saving/restoring of
286            dedicated but caller-save registers around the actual call
287            instruction.
288         b) One can optionally specify a comment-annotation for the
289            call instruction.
290    
291    3. SML/NJ (mlriscGen.sml) uses this new API for the rawccall primop.
292       (For example, the comment annotation shows the C prototype of
293        the function being called.)
294    
295    ----------------------------------------------------------------------
296    Name: Matthias Blume
297    Date: 2001/06/01 13:30:00 EDT
298    Tag: blume-20010601-nlffi-cleanup
299    Description:
300    
301    This is mostly a cleanup of MLFFI stuff:
302    
303       - some signature files have been put into a more exposed place
304       - the ugly 'f type parameter is gone (simplifies types tremendously!)
305       - ml-nlffigen changed accordingly
306       - tutorial updated
307    
308    Other changes:
309    
310       - author's affiliation in CM manual(s) updated
311       - some more recognized keywords added to Allen's sml.sty
312    
313    ----------------------------------------------------------------------
314    Name: Matthias Blume
315  Date: 2001/05/25 15:30:00 EDT  Date: 2001/05/25 15:30:00 EDT
316  Tag: blume-20010525-iptr  Tag: blume-20010525-iptr
317  Description:  Description:

Legend:
Removed from v.836  
changed lines
  Added in v.876

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