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

Legend:
Removed from v.976  
changed lines
  Added in v.1036

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