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

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

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