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

Legend:
Removed from v.976  
changed lines
  Added in v.1062

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