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

Legend:
Removed from v.993  
changed lines
  Added in v.1045

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