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

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

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