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

Legend:
Removed from v.958  
changed lines
  Added in v.1039

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