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

Legend:
Removed from v.915  
changed lines
  Added in v.1028

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