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

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

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