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 903, Mon Aug 20 19:34:06 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
419    Date: 2001/09/20 17:20:00 EDT
420    Tag: blume-20010920-canonicalpaths
421    Description:
422    
423    0. Updated the BOOT file (something that I forgot to do earlier).
424    
425    1. Small internal change to CM so that it avoids "/../" in filenames
426       as much as possible (but only where it is safe).
427    
428    2. Changed config/_run-sml (resulting in a changed bin/.run-sml) so
429       that arguments that contain delimiters are passed through correctly.
430       This change also means that all "special" arguments of the form
431       @SMLxxx... must come first.
432    
433    3. Changed install script to put relative anchor names for tool commands
434       into pathconfig.
435    
436    ----------------------------------------------------------------------
437    Name: Matthias Blume
438    >>>>>>> 1.169
439    Date: 2001/09/18 15:35:00 EDT
440    Tag: blume-20010918-readme11036
441    Description:
442    
443    Added README files.
444    
445    ----------------------------------------------------------------------
446    Name: Matthias Blume
447    Date: 2001/09/18 11:45:00 EDT
448    Tag: Release_110_36 (retag)
449    Description:
450    
451    Fixed mistake in config/preloads. Retagged as 110.36.
452    
453    ----------------------------------------------------------------------
454    Name: Matthias Blume
455    Date: 2001/09/18 09:40:00 EDT
456    Tag: Release_110_36_orig (tag changed)
457    Description:
458    
459    New version (110.36).  New bootfiles.
460    
461    ----------------------------------------------------------------------
462    Name: Matthias Blume
463    Date: 2001/09/14 16:15:00 EDT
464    Tag: blume-20010914-x86fastfp
465    Description:
466    
467    John committed some changes that Allen made, in particular a (hopefully)
468    correctly working version of the x86-fp module.
469    
470    I changed the default setting of the Control.MLRISC.getFlag "x86-fast-fp"
471    flag to "true".  Everything seems to compile to a fixpoint ok, and
472    "mandelbrot" speeds up by about 15%.
473    
474    ----------------------------------------------------------------------
475    Name: Matthias Blume
476    Date: 2001/09/13 11:20:00 EDT
477    Tag: blume-20010913-minimal
478    Description:
479    
480    1. Stefan Monnier's patch to fix a miscompilation problem that
481       was brought to light by John Reppy's work on Moby.
482    
483    2. Implemented a minimal "structure Compiler" that contains just
484       "version" and "architecture".  The minimal version will be
485       available when the full version is not.  This is for backward-
486       compatibility with code that wants to test Compiler.version.
487    
488    ----------------------------------------------------------------------
489    Name: Matthias Blume
490    Date: 2001/08/28 14:03:00 EDT
491    Tag: blume-20010828-ml-lex
492    Description:
493    
494    Fix for bug 1581, received from Neophytos Michael.
495    
496    ----------------------------------------------------------------------
497    Name: Matthias Blume
498    Date: 2001/08/27 11:20:00 EDT
499    Tag: blume-20010827-readme11035
500    Description:
501    
502    Fleshed out the README file for 110.35.
503    
504    ----------------------------------------------------------------------
505    Name: Matthias Blume
506    Date: 2001/08/24 17:10:00 EDT
507    Tag: Release_110_35
508    Description:
509    
510    New version number (110.35).  New bootfiles.
511    
512    ----------------------------------------------------------------------
513    Name: Lal George
514    Date: 2001/08/24 13:47:18 EDT 2001
515    Tag: george-20010824-MLRISC-graphs
516    Description:
517    
518     removed clusters from MLRISC completely and replaced with graphs.
519    
520    ----------------------------------------------------------------------
521    Name: Matthias Blume
522    Date: 2001/08/23 17:50:00 EDT
523    Tag: blume-20010823-toplevel
524    Description:
525    
526    - some reorganization of the code that implements various kinds of
527      environments in the compiler (static, dynamic, symbolic, combined)
528    - re-implemented the EnvRef module so that evalStream works properly
529      (if the stream contains references to "use", "CM.make", etc.)
530    - cleaned up evalloop.sml and interact.sml (but they need more cleaning)
531    
532    ----------------------------------------------------------------------
533    Name: Matthias Blume
534    Date: 2001/08/20 15:50 EDT
535    Tag: blume20010820-slipup
536    Description:
537    
538    I forgot to commit a few files.  Here they are...
539    
540    ----------------------------------------------------------------------
541  Name: Matthias Blume  Name: Matthias Blume
542  Date: 2001/08/20 15:35:00 EDT  Date: 2001/08/20 15:35:00 EDT
543  Tag: blume-20010820-debugprof  Tag: blume-20010820-debugprof
# Line 2887  Line 3412 
3412       elaborator). There were a lot of changes during my "linkpath" trials       elaborator). There were a lot of changes during my "linkpath" trials
3413       that could have been reverted to their original state but weren't.       that could have been reverted to their original state but weren't.
3414       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
3415       than what was strictly necessary...  (I _did_ resist the tempation       than what was strictly necessary...  (I _did_ resist the temptation
3416       of doing any "global reformatting" to avoid an untimely death at       of doing any "global reformatting" to avoid an untimely death at
3417       Dave's hands. :)       Dave's hands. :)
3418    

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

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