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

Legend:
Removed from v.987  
changed lines
  Added in v.1039

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