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

Legend:
Removed from v.909  
changed lines
  Added in v.1015

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