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 937, Thu Sep 20 21:20:28 2001 UTC revision 1025, Thu Jan 17 20:31:51 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/17
18    Tag: leunga-20020117-x86-fast-fp-call
19    Description:
20    
21       1. Fixed a problem with handling return fp values when x86's fast fp
22          mode is turned on.
23    
24       2. Minor pretty printing fix for cellset.  Print %st(0) as %st(0) instead
25          of %f32.
26    
27       3. Added a constructor INT32lit to the ast of MLRISC tools.
28    
29    ----------------------------------------------------------------------
30    Name: Matthias Blume
31    Date: 2002/01/16
32    Tag: blume-20020116-ffifiddle
33    Description:
34    
35    More fiddling with the FFI interface:
36    
37     - Make constness 'c instead of rw wherever possible.  This eliminates
38       the need for certain explicit coercions.  (However, due to ML's
39       value polymorphism, there will still be many cases where explicit
40       coercions are necessary.  Phantom types are not the whole answer
41       to modeling a subtyping relationship in ML.)
42    
43     - ro/rw coersions for pointers added.  (Avoids the detour through */&.)
44    
45     - "printf" test example added to src/ml-nlffi-lib/Tests.  (Demonstrates
46       clumsy workaround for varargs problem.)
47    
48    ----------------------------------------------------------------------
49    Name: Lal George
50    Date: 2002/01/15
51    Tag: <none>
52    Description:
53    
54    1. Since COPY instructions are no longer native to the architecture,
55       a generic functor can be used to implement the expandCopies function.
56    
57    2. Allowed EXPORT and IMPORT pseudo-op declarations to appear inside a
58       TEXT segment.
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume
62    Date: 2002/01/15
63    Tag: blume-20020115-ffiupdates
64    Description:
65    
66    1. Fix for bug resulting in single-precision float values being returned
67       incorrectly from FFI calls.
68    
69    2. Small modifications to C FFI API:
70    
71        - memory-allocation routines return straight objects (no options)
72          and raise an exception in out-of-memory situations
73        - unsafe extensions to cast between function pointers and pointers
74          from/to ints
75        - added structure C_Debug as an alternative to structure C where
76          pointer-dereferencing (|*| and |*!) always check for null-pointers
77        - added open_lib' to DynLinkage;  open_lib' works like open_lib
78          but also takes a (possibly empty) list of existing library handles
79          that the current library depends on
80    
81    ----------------------------------------------------------------------
82    Name: Matthias Blume
83    Date: 2002/01/10
84    Tag: blume-20020110-newffigen
85    Description:
86    
87    1. Updates to portable graph code.
88    
89    2. Major update to ml-nlffigen and ml-nlffi-lib.  Things are much
90       more scalable now so that even huge interfaces such as the one
91       for GTK compile in finite time and space. :-)
92       See src/ml-nlffigen/README for details on what's new.
93    
94    ----------------------------------------------------------------------
95    Name: Lal George
96    Date: 2001/01/09 14:31:35 EST 2002
97    Tag: george-20011206-rm-native-copy
98    Description:
99    
100            Removed the native COPY and FCOPY instructions
101            from all the architectures and replaced it with the
102            explicit COPY instruction from the previous commit.
103    
104            It is now possible to simplify many of the optimizations
105            modules that manipulate copies. This has not been
106            done in this change.
107    
108    ----------------------------------------------------------------------
109    Name: Lal George
110    Date: 2001/12/06 16:50:13 EST 2001
111    Tag: george-20011206-mlrisc-instruction
112    Description:
113    
114    Changed the representation of instructions from being fully abstract
115    to being partially concrete. That is to say:
116    
117      from
118            type instruction
119    
120      to
121            type instr                              (* machine instruction *)
122    
123            datatype instruction =
124                LIVE of {regs: C.cellset, spilled: C.cellset}
125              | KILL of {regs: C.cellset, spilled: C.cellset}
126              | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
127              | ANNOTATION of {i: instruction, a: Annotations.annotation}
128              | INSTR of instr
129    
130    This makes the handling of certain special instructions that appear on
131    all architectures easier and uniform.
132    
133    LIVE and KILL say that a list of registers are live or killed at the
134    program point where they appear. No spill code is generated when an
135    element of the 'regs' field is spilled, but the register is moved to
136    the 'spilled' (which is present, more for debugging than anything else).
137    
138    LIVE replaces the (now deprecated) DEFFREG instruction on the alpha.
139    We used to generate:
140    
141            DEFFREG f1
142            f1 := f2 + f3
143            trapb
144    
145    but now generate:
146    
147            f1 := f2 + f3
148            trapb
149            LIVE {regs=[f1,f2,f3], spilled=[]}
150    
151    Furthermore, the DEFFREG (hack) required that all floating point instruction
152    use all registers mentioned in the instruction. Therefore f1 := f2 + f3,
153    defines f1 and uses [f1,f2,f3]! This hack is no longer required resulting
154    in a cleaner alpha implementation. (Hopefully, intel will not get rid of
155    this architecture).
156    
157    COPYXXX is intended to replace the parallel COPY and FCOPY  available on
158    all the architectures. This will result in further simplification of the
159    register allocator that must be aware of them for coalescing purposes, and
160    will also simplify certain aspects of the machine description that provides
161    callbacks related to parallel copies.
162    
163    ANNOTATION should be obvious, and now INSTR represents the honest to God
164    machine instruction set!
165    
166    The <arch>/instructions/<arch>Instr.sml files define certain utility
167    functions for making porting easier -- essentially converting upper case
168    to lower case. All machine instructions (of type instr) are in upper case,
169    and the lower case form generates an MLRISC instruction. For example on
170    the alpha we have:
171    
172      datatype instr =
173         LDA of {r:cell, b:cell, d:operand}
174       | ...
175    
176      val lda : {r:cell, b:cell, d:operand} -> instruction
177        ...
178    
179    where lda is just (INSTR o LDA), etc.
180    
181    ----------------------------------------------------------------------
182    Name: Matthias Blume
183    Date: 2001/11/22 21:40:00 EST
184    Tag: Release_110_37
185    Description:
186    
187    Release 110.37.  This time for real.
188    
189    ----------------------------------------------------------------------
190    Name: Matthias Blume
191    Date: 2001/11/21 16:35:00 EST
192    Tag: blume-20011121-foot-in-mouth
193    Description:
194    
195    Removed the "Release_110_37" tag because of a serious bug.
196    This will be re-tagged once the bug is fixed.
197    
198    ----------------------------------------------------------------------
199    Name: Matthias Blume
200    Date: 2001/11/21 16:14:00 EST
201    Tag: blume-20011121-forgottenfile
202    Description:
203    
204    Forgot to add a file.  (Just a .tex-file -- part of
205    the CM manual source.)
206    
207    ----------------------------------------------------------------------
208    Name: Matthias Blume
209    Date: 2001/11/21 16:10:00 EST
210    Tag: blume-20011121-invalid_110_37
211    Description:
212    
213    Note: I removed the original tag "Release_110_37" from this commit
214          because we found a serious bug in all non-x86 backends.
215          - Matthias
216    
217    1. Modifications to the SML/NJ code generator and to the runtime system
218       so that code object name strings are directly inserted into code
219       objects at code generation time.  The only business the runtime system
220       has with this is now to read the name strings on occasions.
221       (The encoding of the name string has also changed somewhat.)
222    
223    2. CM now implements a simple "set calculus" for specifying export lists.
224       In particular, it is now possible to refer to the export lists of
225       other libraries/groups/sources and form unions as well as differences.
226       See the latest CM manual for details.
227    
228    3. An separate notion of "proxy" libraries has again be eliminated from
229       CM's model.  (Proxy libraries are now simply a special case of using
230       the export list calculus.)
231    
232    4. Some of the existing libraries now take advantage of the new set
233       calculus.
234       (Notice that not all libraries have been converted because some
235       of the existing .cm-files are supposed to be backward compatible
236       with 110.0.x.)
237    
238    5. Some cleanup in stand-alone programs.  (Don't use "exnMessage" -- use
239       "General.exnMessage"!  The former relies on a certain hook to be
240       initialized, and that often does not happen in the stand-alone case.)
241    
242    ----------------------------------------------------------------------
243    Name: Lal George
244    Date: 2001/11/21  13:56:18 EST
245    Tag: george-2001121-pseudo-ops
246    Description:
247    
248      Implemented a complete redesign of MLRISC pseudo-ops. Now there
249      ought to never be any question of incompatabilities with
250      pseudo-op syntax expected by host assemblers.
251    
252      For now, only modules supporting GAS syntax are implemented
253      but more should follow, such as MASM, and vendor assembler
254      syntax, e.g. IBM as, Sun as, etc.
255    
256    ----------------------------------------------------------------------
257    Name: Matthias Blume
258    Date: 2001/11/14 11:52:00 EST
259    Tag: blume-20011114-srcname
260    Description:
261    
262    1. Routed the name of the current source file to mlriscgen where it
263       should be directly emitted into the code object.  (This last part
264       is yet to be done.)
265    
266    2. Some cleanup of the pgraph code to make it match the proposal that
267       I put out the other day.  (The proposal notwithstanding, things are
268       still in flux here.)
269    
270    ----------------------------------------------------------------------
271    Name: Lal George
272    Date: 2001/11/14 09:44:04 EST
273    Tag:
274    Description:
275    
276      Fix for a backpatching bug reported by Allen.
277    
278      Because the boundary between short and long span-dependent
279      instructions is +/- 128, there are an astounding number of
280      span-dependent instructions whose size is over estimated.
281    
282      Allen came up with the idea of letting the size of span
283      dependent instructions be non-monotonic, for a maxIter
284      number of times, after which the size must be monotonically
285      increasing.
286    
287      This table shows the number of span-dependent instructions
288      whose size was over-estimated as a function of maxIter, for the
289      file Parse/parse/ml.grm.sml:
290    
291         maxIter            # of instructions:
292            10                      687
293            20                      438
294            30                      198
295            40                        0
296    
297      In compiling the compiler, there is no significant difference in
298      compilation speed between maxIter=10 and maxIter=40. Actually,
299      my measurements showed that maxIter=40 was a tad faster than
300      maxIter=10! Also 96% of the  files in the compiler reach a fix
301      point within 13 iterations, so fixing maxIter at 40, while high,
302      is okay.
303    
304    ----------------------------------------------------------------------
305    Name: Matthias Blume
306    Date: 2001/10/31 15:25:00 EST
307    Tag: blume-20011031-pgraph
308    Description:
309    
310    CKIT:
311    * Changed the "Function" constructor of type Ast.ctype to carry optional
312      argument identifiers.
313    * Changed the return type of TypeUtil.getFunction accordingly.
314    * Type equality ignores the argument names.
315    * TypeUtil.composite tries to preserve argument names but gives up quickly
316      if there is a mismatch.
317    
318    installation script:
319    * attempts to use "curl" if available (unless "wget" is available as well)
320    
321    CM:
322    * has an experimental implementation of "portable graphs" which I will
323      soon propose as an implementation-independent library format
324    * there are also new libraries $/pgraph.cm and $/pgraph-util.cm
325    
326    NLFFI-LIB:
327    * some cleanup (all cosmetic)
328    
329    NLFFIGEN:
330    * temporarily disabled the mechanism that suppresses ML output for
331      C definitions whose identifiers start with an underscore character
332    * generate val bindings for enum constants
333    * user can request that only one style (light or heavy) is being used;
334      default is to use both (command-line arguments: -heavy and -light)
335    * fixed bug in handling of function types involving incomplete pointers
336    * generate ML entry points that take record arguments (i.e., using
337      named arguments) for C functions that have a prototype with named
338      arguments
339      (see changes to CKIT)
340    
341    ----------------------------------------------------------------------
342    Name: Allen Leung
343    Date: 2001/10/27 20:34:00 EDT
344    Tag: leunga-20011027-x86-fast-fp-call
345    Description:
346    
347       Fixed the bug described in blume-20010920-slowfp.
348    
349       The fix involves
350          1. generating FCOPYs in FSTP in ia32-svid
351          2. marking a CALL with the appropriate annotation
352    
353    ----------------------------------------------------------------------
354    Name: Matthias Blume
355    Date: 2001/10/16 11:32:00 EDT
356    Tag: blume-20011016-netbsd
357    Description:
358    
359    Underscore patch from Chris Richards (fixing problem with compiling
360    runtime system under recent NetBSD).
361    
362    ----------------------------------------------------------------------
363    Name: Allen Leung
364    Date: 2001/10/12 17:18:32 EDT 2001
365    Tag: leung-20011012-x86-printflowgraph
366    Description:
367    
368    X86RA now uses a valid (instead of dummy) PrintFlowgraph module.
369    
370    ----------------------------------------------------------------------
371    Name: Lal George
372    Date: 2001/10/11 23:51:34 EDT
373    Tag: george-20011011-too-many-instrs
374    Description:
375    
376    The representation of a program point never expected to see more
377    than 65536 instructions in a basic block!
378    
379    ----------------------------------------------------------------------
380    Name: Lal George
381    Date: 2001/10/09 09:41:37 EDT
382    Tag: george-20011008-mlrisc-labels
383    Description:
384    
385    Changed the machine description files to support printing of
386    local and global labels in assembly code, based on host assembler
387    conventions.
388    
389    ----------------------------------------------------------------------
390    Name: Matthias Blume
391    Date: 2001/09/25 15:25:00 EDT
392    Tag: blume-20010925-exninfo
393    Description:
394    
395    I provided a non-hook implementation of exnName (at the toplevel) and
396    made the "dummy" implementation of exnMessage (at the toplevel) more
397    useful: if nothing gets "hooked in", then at least you are going to
398    see the exception name and a message indicating why you don't see more.
399    
400    [For the time being, programs that need exnMessage and want to use
401    ml-build should either use General.exnMessage (strongly recommended) or
402    refer to structure General at some other point so that CM sees a
403    static dependency.]
404    
405    [Similar remarks go for "print" and "use":  If you want to use their
406    functionality in stand-alone programs generated by ml-build, then use
407    TextIO.output and Backend.Interact.useFile (from $smlnj/compiler.cm).]
408    
409    ----------------------------------------------------------------------
410    Name: Matthias Blume
411    Date: 2001/09/20 17:28:00 EDT
412    Tag: blume-20010920-slowfp
413    Description:
414    
415    Allen says that x86-fast-fp is not safe yet, so I turned it off again...
416    
417    ----------------------------------------------------------------------
418  Name: Matthias Blume  Name: Matthias Blume
419  Date: 2001/09/20 17:20:00 EDT  Date: 2001/09/20 17:20:00 EDT
420  Tag: blume-20010920-canonicalpaths  Tag: blume-20010920-canonicalpaths
# Line 33  Line 435 
435    
436  ----------------------------------------------------------------------  ----------------------------------------------------------------------
437  Name: Matthias Blume  Name: Matthias Blume
438    >>>>>>> 1.169
439  Date: 2001/09/18 15:35:00 EDT  Date: 2001/09/18 15:35:00 EDT
440  Tag: blume-20010918-readme11036  Tag: blume-20010918-readme11036
441  Description:  Description:

Legend:
Removed from v.937  
changed lines
  Added in v.1025

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