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 984, Wed Nov 21 19:00:08 2001 UTC revision 1040, Mon Jan 28 16:55:24 2002 UTC
# Line 8  Line 8 
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  Name:
11  Date:  Date: yyyy/mm/dd
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2002/01/28 12:00:00
18    Tag: Release_110_38
19    Description:
20    
21    This time for real!!!
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume
25    Date: 2002/01/28 10:56:00 EST
26    Tag: blume-20020128-retraction
27    Description:
28    
29    0. Retracted earlier 110.38.  (The Release_110_38 tag has been replaced
30       with blume-Release_110_38-retracted.)
31    
32    1. Fixed a problem with incorrect rounding modes in real64.sml.
33       (Thanks to Andrew Mccreight <andrew.mccreight@yale.edu>.)
34    
35    2. A bug in ml-nlffigen related to the handling of unnamed structs, unions,
36       and enums fixed.  The naming of corresponding ML identifiers should
37       now be consistent again.
38    
39    ----------------------------------------------------------------------
40    Name: Allen Leung
41    Date: 2002/01/27
42    Tag: leunga-20020127-nowhere
43    Description:
44    
45       Added a target called nowhere in the configuration scripts.
46       Enabling this will build the MLRISC 'nowhere' tool (for translating
47       programs with where-clauses into legal SML code) during installation.
48    
49    ----------------------------------------------------------------------
50    Name: Matthias Blume
51    Date: 2002/01/25 21:27:00 EST
52    Tag: blume-Release_110_38-retracted
53    Description:
54    
55    Call it a (working) release!  Version is 110.38. Bootfiles are ready.
56    
57    README will be added later.
58    
59    !!! NOTE:  Re-tagged as blume-Release_110_38-retracted. Original tag
60    (Release_110_38) removed.  Reason: Last-minute bug fixes.
61    
62    ----------------------------------------------------------------------
63    Name: Matthias Blume
64    Date: 2002/01/25
65    Tag: blume-20020125-ffi
66    Description:
67    
68    A large number of tweaks and improvements to ml-nlffi-lib and
69    ml-nlffigen:
70    
71       - ML represenation types have been streamlined
72       - getter and setter functions work with concrete values, not abstract
73         ones where possible
74       - ml-nlffigen command line more flexible (see README file there)
75       - some bugs have been fixed (hopefully)
76    
77    ----------------------------------------------------------------------
78    Name: Lal George
79    Date: 2002/01/24
80    Tag: george-20020124-risc-ra-interface
81    Description:
82    
83       There is a dramatic simplification in the interface to the
84       register allocator for RISC architectures as a result of making
85       parallel copy instructions explicit.
86    
87    ----------------------------------------------------------------------
88    Name: Matthias Blume
89    Date: 2002/01/22
90    Tag: blume-20020122-x86-ccalls
91    Description:
92    
93    Bug fix for c-calls on x86 (having to do with how char- and
94    short-arguments are being handled).
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume
98    Date: 2002/01/21
99    Tag: blume-20020121-ff
100    Description:
101    
102    Another day of fiddling with the FFI...
103    
104    1. Bug fix/workaround:  CKIT does not complain about negative array
105       dimensions, so ml-nlffigen has to guard itself against this possibility.
106       (Otherwise a negative dimension would send it into an infinite loop.)
107    
108    2. Some of the abstract types (light objects, light pointers, most "base"
109       types) in structure C are now eqtypes.
110    
111    3. Added constructors and test functions for NULL function pointers.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume
115    Date: 2002/01/18
116    Tag: blume-20020118-ready-for-new-release
117    Description:
118    
119    Made config/srcarchiveurl point to a new place.  (Will provide boot
120    files shortly.)
121    
122    Maybe we christen this to be 110.38?
123    
124    ----------------------------------------------------------------------
125    Name: Matthias Blume
126    Date: 2002/01/18
127    Tag: blume-20020118-more-ffifiddle
128    Description:
129    
130    Today's FFI fiddling:
131    
132      - Provided a structure CGetSet with "convenient" versions of C.Get.* and
133        C.Set.* that use concrete (MLRep.*) arguments and results instead
134        of abstract ones.
135    
136      - Provided word-style bit operations etc. for "int" representation
137        types in MLRep.S<Foo>Bitops where <Foo> ranges over Char, Int, Short,
138        and Long.
139    
140    ----------------------------------------------------------------------
141    Name: Matthias Blume
142    Date: 2002/01/18
143    Tag: blume-20020118-use-x86-fp
144    Description:
145    
146    Now that x86-fast-fp seems to be working, I turned it back on again
147    by default.  (Seems to work fine now, even with the FFI.)
148    
149    Other than that, I added some documentation about the FFI to
150    src/ml-nlffigen/README and updated the FFI test examples in
151    src/ml-nlffi-lib/Tests/*.
152    
153    ----------------------------------------------------------------------
154    Name: Allen Leung
155    Date: 2002/01/17
156    Tag: leunga-20020117-x86-fast-fp-call
157    Description:
158    
159       1. Fixed a problem with handling return fp values when x86's fast fp
160          mode is turned on.
161    
162       2. Minor pretty printing fix for cellset.  Print %st(0) as %st(0) instead
163          of %f32.
164    
165       3. Added a constructor INT32lit to the ast of MLRISC tools.
166    
167    ----------------------------------------------------------------------
168    Name: Matthias Blume
169    Date: 2002/01/16
170    Tag: blume-20020116-ffifiddle
171    Description:
172    
173    More fiddling with the FFI interface:
174    
175     - Make constness 'c instead of rw wherever possible.  This eliminates
176       the need for certain explicit coercions.  (However, due to ML's
177       value polymorphism, there will still be many cases where explicit
178       coercions are necessary.  Phantom types are not the whole answer
179       to modeling a subtyping relationship in ML.)
180    
181     - ro/rw coersions for pointers added.  (Avoids the detour through */&.)
182    
183     - "printf" test example added to src/ml-nlffi-lib/Tests.  (Demonstrates
184       clumsy workaround for varargs problem.)
185    
186    ----------------------------------------------------------------------
187    Name: Lal George
188    Date: 2002/01/15
189    Tag: <none>
190    Description:
191    
192    1. Since COPY instructions are no longer native to the architecture,
193       a generic functor can be used to implement the expandCopies function.
194    
195    2. Allowed EXPORT and IMPORT pseudo-op declarations to appear inside a
196       TEXT segment.
197    
198    ----------------------------------------------------------------------
199    Name: Matthias Blume
200    Date: 2002/01/15
201    Tag: blume-20020115-ffiupdates
202    Description:
203    
204    1. Fix for bug resulting in single-precision float values being returned
205       incorrectly from FFI calls.
206    
207    2. Small modifications to C FFI API:
208    
209        - memory-allocation routines return straight objects (no options)
210          and raise an exception in out-of-memory situations
211        - unsafe extensions to cast between function pointers and pointers
212          from/to ints
213        - added structure C_Debug as an alternative to structure C where
214          pointer-dereferencing (|*| and |*!) always check for null-pointers
215        - added open_lib' to DynLinkage;  open_lib' works like open_lib
216          but also takes a (possibly empty) list of existing library handles
217          that the current library depends on
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume
221    Date: 2002/01/10
222    Tag: blume-20020110-newffigen
223    Description:
224    
225    1. Updates to portable graph code.
226    
227    2. Major update to ml-nlffigen and ml-nlffi-lib.  Things are much
228       more scalable now so that even huge interfaces such as the one
229       for GTK compile in finite time and space. :-)
230       See src/ml-nlffigen/README for details on what's new.
231    
232    ----------------------------------------------------------------------
233    Name: Lal George
234    Date: 2001/01/09 14:31:35 EST 2002
235    Tag: george-20011206-rm-native-copy
236    Description:
237    
238            Removed the native COPY and FCOPY instructions
239            from all the architectures and replaced it with the
240            explicit COPY instruction from the previous commit.
241    
242            It is now possible to simplify many of the optimizations
243            modules that manipulate copies. This has not been
244            done in this change.
245    
246    ----------------------------------------------------------------------
247    Name: Lal George
248    Date: 2001/12/06 16:50:13 EST 2001
249    Tag: george-20011206-mlrisc-instruction
250    Description:
251    
252    Changed the representation of instructions from being fully abstract
253    to being partially concrete. That is to say:
254    
255      from
256            type instruction
257    
258      to
259            type instr                              (* machine instruction *)
260    
261            datatype instruction =
262                LIVE of {regs: C.cellset, spilled: C.cellset}
263              | KILL of {regs: C.cellset, spilled: C.cellset}
264              | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
265              | ANNOTATION of {i: instruction, a: Annotations.annotation}
266              | INSTR of instr
267    
268    This makes the handling of certain special instructions that appear on
269    all architectures easier and uniform.
270    
271    LIVE and KILL say that a list of registers are live or killed at the
272    program point where they appear. No spill code is generated when an
273    element of the 'regs' field is spilled, but the register is moved to
274    the 'spilled' (which is present, more for debugging than anything else).
275    
276    LIVE replaces the (now deprecated) DEFFREG instruction on the alpha.
277    We used to generate:
278    
279            DEFFREG f1
280            f1 := f2 + f3
281            trapb
282    
283    but now generate:
284    
285            f1 := f2 + f3
286            trapb
287            LIVE {regs=[f1,f2,f3], spilled=[]}
288    
289    Furthermore, the DEFFREG (hack) required that all floating point instruction
290    use all registers mentioned in the instruction. Therefore f1 := f2 + f3,
291    defines f1 and uses [f1,f2,f3]! This hack is no longer required resulting
292    in a cleaner alpha implementation. (Hopefully, intel will not get rid of
293    this architecture).
294    
295    COPYXXX is intended to replace the parallel COPY and FCOPY  available on
296    all the architectures. This will result in further simplification of the
297    register allocator that must be aware of them for coalescing purposes, and
298    will also simplify certain aspects of the machine description that provides
299    callbacks related to parallel copies.
300    
301    ANNOTATION should be obvious, and now INSTR represents the honest to God
302    machine instruction set!
303    
304    The <arch>/instructions/<arch>Instr.sml files define certain utility
305    functions for making porting easier -- essentially converting upper case
306    to lower case. All machine instructions (of type instr) are in upper case,
307    and the lower case form generates an MLRISC instruction. For example on
308    the alpha we have:
309    
310      datatype instr =
311         LDA of {r:cell, b:cell, d:operand}
312       | ...
313    
314      val lda : {r:cell, b:cell, d:operand} -> instruction
315        ...
316    
317    where lda is just (INSTR o LDA), etc.
318    
319    ----------------------------------------------------------------------
320    Name: Matthias Blume
321    Date: 2001/11/22 21:40:00 EST
322    Tag: Release_110_37
323    Description:
324    
325    Release 110.37.  This time for real.
326    
327    ----------------------------------------------------------------------
328    Name: Matthias Blume
329    Date: 2001/11/21 16:35:00 EST
330    Tag: blume-20011121-foot-in-mouth
331    Description:
332    
333    Removed the "Release_110_37" tag because of a serious bug.
334    This will be re-tagged once the bug is fixed.
335    
336    ----------------------------------------------------------------------
337    Name: Matthias Blume
338    Date: 2001/11/21 16:14:00 EST
339    Tag: blume-20011121-forgottenfile
340    Description:
341    
342    Forgot to add a file.  (Just a .tex-file -- part of
343    the CM manual source.)
344    
345    ----------------------------------------------------------------------
346    Name: Matthias Blume
347    Date: 2001/11/21 16:10:00 EST
348    Tag: blume-20011121-invalid_110_37
349    Description:
350    
351    Note: I removed the original tag "Release_110_37" from this commit
352          because we found a serious bug in all non-x86 backends.
353          - Matthias
354    
355    1. Modifications to the SML/NJ code generator and to the runtime system
356       so that code object name strings are directly inserted into code
357       objects at code generation time.  The only business the runtime system
358       has with this is now to read the name strings on occasions.
359       (The encoding of the name string has also changed somewhat.)
360    
361    2. CM now implements a simple "set calculus" for specifying export lists.
362       In particular, it is now possible to refer to the export lists of
363       other libraries/groups/sources and form unions as well as differences.
364       See the latest CM manual for details.
365    
366    3. An separate notion of "proxy" libraries has again be eliminated from
367       CM's model.  (Proxy libraries are now simply a special case of using
368       the export list calculus.)
369    
370    4. Some of the existing libraries now take advantage of the new set
371       calculus.
372       (Notice that not all libraries have been converted because some
373       of the existing .cm-files are supposed to be backward compatible
374       with 110.0.x.)
375    
376    5. Some cleanup in stand-alone programs.  (Don't use "exnMessage" -- use
377       "General.exnMessage"!  The former relies on a certain hook to be
378       initialized, and that often does not happen in the stand-alone case.)
379    
380    ----------------------------------------------------------------------
381  Name: Lal George  Name: Lal George
382  Date: 2001/11/21  13:56:18 EST  Date: 2001/11/21  13:56:18 EST
383  Tag: george-2001121-pseudo-ops  Tag: george-2001121-pseudo-ops

Legend:
Removed from v.984  
changed lines
  Added in v.1040

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