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

Legend:
Removed from v.988  
changed lines
  Added in v.1044

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