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 1003, Fri Dec 7 02:45:32 2001 UTC revision 1066, Thu Feb 14 16:50:02 2002 UTC
# Line 11  Line 11 
11  Date: yyyy/mm/dd  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/14 11:50:00 EST
18    Tag: blume-20020214-quote
19    Description:
20    
21    Added a type 't t_' to tag.sml (in ml-nlffi-lib.cm).  This is required
22    because of the new and improved tag generation scheme.  (Thanks to Allen
23    Leung for pointing it out.)
24    
25    ----------------------------------------------------------------------
26    Name: Lal George
27    Date: 2002/02/14 09:55:27 EST 2002
28    Tag: george-20020214-isabelle-bug
29    Description:
30    
31    Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation
32    of Isabelle on the x86.
33    
34    From Allen:
35    -----------
36     I've found the problem:
37    
38         in ra-core.sml, I use the counter "blocked" to keep track of the
39         true number of elements in the freeze queue.  When the counter goes
40         to zero, I skip examining the queue.  But I've messed up the
41         bookkeeping in combine():
42    
43             else ();
44             case !ucol of
45               PSEUDO => (if !cntv > 0 then
46                     (if !cntu > 0 then blocked := !blocked - 1 else ();
47                                        ^^^^^^^^^^^^^^^^^^^^^^^
48                      moveu := mergeMoveList(!movev, !moveu)
49                     )
50                  else ();
51    
52         combine() is called to coalesce two nodes u and v.
53         I think I was thinking that if the move counts of u and v are both
54         greater than zero then after they are coalesced then one node is
55         removed from the freeze queue.  Apparently I was thinking that
56         both u and v are of low degree, but that's clearly not necessarily true.
57    
58    
59    02/12/2002:
60        Here's the patch.  HOL now compiles.
61    
62        I don't know how this impact on performance (compile
63        time or runtime).  This bug caused the RA (especially on the x86)
64        to go thru the potential spill phase when there are still nodes on the
65        freeze queue.
66    
67    
68    
69    
70    ----------------------------------------------------------------------
71    Name: Matthias Blume
72    Date: 2002/02/13 22:40:00 EST
73    Tag: blume-20020213-fptr-rtti
74    Description:
75    
76    Fixed a bug in ml-nlffigen that was introduced with one of the previous
77    updates.
78    
79    ----------------------------------------------------------------------
80    Name: Matthias Blume
81    Date: 2002/02/13 16:41:00 EST
82    Tag: blume-20020213-cmlpq
83    Description:
84    
85    Added new priority queue export symbols (which have just been added to
86    smlnj-lib.cm) to CML's version of smlnj-lib.cm.  (Otherwise CML would
87    not compile and the installer would choke.)
88    
89    ----------------------------------------------------------------------
90    Name: Matthias Blume
91    Date: 2002/02/13 16:15:00 EST
92    Tag: blume-20020213-various
93    Description:
94    
95    1. More tweaks to ml-nlffigen:
96    
97       - better internal datastructures (resulting in slight speedup)
98       - "-match" option requires exact match
99       - "localized" gensym counters (untagged structs/unions nested within
100         other structs/unions or within typedefs get a fresh counter; their
101         tag will be prefixed by a concatenation of their parents' tags)
102       - bug fixes (related to calculation of transitive closure of types
103         to be included in the output)
104    
105    2. Minor Basis updates:
106    
107       - added implementations for List.collate and Option.app
108    
109    ----------------------------------------------------------------------
110    Name: Matthias Blume
111    Date: 2002/02/11 15:55:00 EST
112    Tag: blume-20020211-gensym
113    Description:
114    
115    Added a "-gensym" option to command line of ml-nlffigen.  This can be
116    used to specify a "stem" -- a string that is inserted in all "gensym'd"
117    names (ML structure names that correspond to unnamed C structs, unions,
118    and enums), so that separate runs of ml-nlffigen do not clash.
119    
120    ----------------------------------------------------------------------
121    Name: Matthias Blume
122    Date: 2002/02/11 12:05:00 EST
123    Tag: blume-20020211-gensml
124    Description:
125    
126    A quick fix for a problem with GenSML (in the pgraph-util library):
127    Make generation of toplevel "local" optional.  (Strictly speaking,
128    signature definitions within "local" are not legal SML.)
129    
130    Other than that: updates to INSTALL and cm/TODO.
131    
132    ----------------------------------------------------------------------
133    Name: Matthias Blume
134    Date: 2002/02/08 15:00:00 EST
135    Tag: blume-20020208-uniquepid
136    Description:
137    
138    0. Version number has been bumped to 110.38.1.  NEW BOOTFILES!!!
139    
140    1. The installer (config/install.sh) has gotten smarter:
141    
142         - Configuration options are a bit easier to specify now
143           (in config/targets).
144         - Bug in recognizing .tar.bz2 files fixed.
145         - Installer automatically resolves dependencies between
146           configuration options (e.g., if you ask for eXene, you will
147           also get cml -- regardless whether you asked for it or not).
148         - Installer can run in "quieter mode" by setting the environment
149           variable INSTALL_QUIETLY to "true".  "Quieter" does not mean
150           "completely silent", though.
151         - Build HashCons library as part of smlnj-lib.
152    
153    2. A new scheme for assigning persistent identifiers to compilation
154       units (and, by extension, to types etc.) has been put into place.
155       This fixes a long-standing bug where types and even dynamic values
156       can get internally confused, thereby compromising type safety
157       (abstraction) and dynamic correctness.  See
158    
159         http://cm.bell-labs.com/cm/cs/who/blume/pid-confusion.tgz
160    
161       for an example of how things could go wrong until now.
162    
163       The downside of the new scheme is that pids are not quite as
164       persistent as they used to be: CM will generate a fresh pid
165       for every compilation unit that it thinks it sees for the first
166       time.  That means that if you compile starting from a clean, fresh
167       source tree at two different times, you end up with different
168       binaries.
169    
170       Cutoff recompilation, however, has not been compromised because
171       CM keeps pid information in special caches between runs.
172    
173    ----------------------------------------------------------------------
174    Name: Lal George
175    Date: 2002/02/07 15:34:13 EST 2002
176    Tag: <none>
177    Description:
178    
179    Compilers that generate assembly code may produce  global labels
180    whose value is resolved at link time. The various peephole optimization
181    modules did not take this in account.
182    
183    TODO. The Labels.addrOf function should really return an option
184    type so that clients are forced to deal with this issue, rather
185    than an exception being raised.
186    
187    ----------------------------------------------------------------------
188    Name: Lal George
189    Date: 2002/02/06 13:55:02 EST
190    Tag: george-20020206-ra-breakup
191    Description:
192    
193    1. A bug fix from Allen.
194    
195        A typo causes extra fstp %st(0)'s to be generated at compensation
196        edges, which might cause stack underflow traps at runtime.  This
197        occurs in fft where there are extraneous fstps right before the 'into'
198        trap instruction (in this case they are harmless since none of the
199        integers overflow.)
200    
201    2. Pulled out various utility modules that were embedded in the modules
202       of the register allocator. I need these modules for other purposes, but
203       they are not complete enough to put into a library (just yet).
204    ----------------------------------------------------------------------
205    Name: Matthias Blume
206    Date: 2002/01/31 16:05:00 EST
207    Tag: blume-20020131-sparc-ccalls
208    Description:
209    
210    1. C-calls on Sparc needlessly allocated a huge chunk (96 bytes)
211       of extra stack space by mistake.  Fixed.
212    
213    2. Bug in logic of handling of command-line options in ml-nlffigen fixed.
214    
215    ----------------------------------------------------------------------
216    Name: Allen Leung
217    Date: 2002/01/30
218    Tag: leunga-20020130-nowhere-bug-fix
219    Description:
220    
221       MLRISC bug fixes:
222       1. Fixed a bindings computation bug in the 'nowhere' program generator tool.
223       2. MachineInt.fromString was negating its value.
224    
225    ----------------------------------------------------------------------
226    Name: Matthias Blume
227    Date: 2002/01/29
228    Tag: blume-20020129-INSTALL
229    Description:
230    
231    - Added somewhat detailed installation instructions (file INSTALL).
232    - Fixed curl-detection bug in config/install.sh.
233    - It is now possible to select the URL getter using the URLGETTER
234      environment variable:
235    
236          not set / "unknown"      --> automatic detection (script tries wget,
237                                       curl, and lynx)
238          "wget" / "curl" / "lynx" --> use the specified program (script "knows"
239                                       how to properly invoke them)
240          other                    --> use $URLGETTER directly, it must take
241                                       precisely two command-line arguments
242                                       (source URL and destination file name)
243    
244    ----------------------------------------------------------------------
245    Name: Matthias Blume
246    Date: 2002/01/28
247    Tag: blume-20020128-sparc-ccalls
248    Description:
249    
250    - Fixed problem with calculation of "used" registers in sparc-c-calls.
251    - Make use of the allocParam argument in sparc-c-calls.
252    
253    ----------------------------------------------------------------------
254    Name: Matthias Blume
255    Date: 2002/01/28
256    Tag: blume-20020128-allocParam
257    Description:
258    
259    John Reppy:  Changes c-calls API to accept client-callback for
260    allocating extra stack space.
261    me: Corresponding changes to mlriscGen (using a dummy argument that
262        does not change the current behavior).
263    
264    ----------------------------------------------------------------------
265    Name: Matthias Blume
266    Date: 2002/01/28 12:00:00
267    Tag: Release_110_38
268    Description:
269    
270    This time for real!!!
271    
272    ----------------------------------------------------------------------
273    Name: Matthias Blume
274    Date: 2002/01/28 10:56:00 EST
275    Tag: blume-20020128-retraction
276    Description:
277    
278    0. Retracted earlier 110.38.  (The Release_110_38 tag has been replaced
279       with blume-Release_110_38-retracted.)
280    
281    1. Fixed a problem with incorrect rounding modes in real64.sml.
282       (Thanks to Andrew Mccreight <andrew.mccreight@yale.edu>.)
283    
284    2. A bug in ml-nlffigen related to the handling of unnamed structs, unions,
285       and enums fixed.  The naming of corresponding ML identifiers should
286       now be consistent again.
287    
288    ----------------------------------------------------------------------
289    Name: Allen Leung
290    Date: 2002/01/27
291    Tag: leunga-20020127-nowhere
292    Description:
293    
294       Added a target called nowhere in the configuration scripts.
295       Enabling this will build the MLRISC 'nowhere' tool (for translating
296       programs with where-clauses into legal SML code) during installation.
297    
298    ----------------------------------------------------------------------
299    Name: Matthias Blume
300    Date: 2002/01/25 21:27:00 EST
301    Tag: blume-Release_110_38-retracted
302    Description:
303    
304    Call it a (working) release!  Version is 110.38. Bootfiles are ready.
305    
306    README will be added later.
307    
308    !!! NOTE:  Re-tagged as blume-Release_110_38-retracted. Original tag
309    (Release_110_38) removed.  Reason: Last-minute bug fixes.
310    
311    ----------------------------------------------------------------------
312    Name: Matthias Blume
313    Date: 2002/01/25
314    Tag: blume-20020125-ffi
315    Description:
316    
317    A large number of tweaks and improvements to ml-nlffi-lib and
318    ml-nlffigen:
319    
320       - ML represenation types have been streamlined
321       - getter and setter functions work with concrete values, not abstract
322         ones where possible
323       - ml-nlffigen command line more flexible (see README file there)
324       - some bugs have been fixed (hopefully)
325    
326    ----------------------------------------------------------------------
327    Name: Lal George
328    Date: 2002/01/24
329    Tag: george-20020124-risc-ra-interface
330    Description:
331    
332       There is a dramatic simplification in the interface to the
333       register allocator for RISC architectures as a result of making
334       parallel copy instructions explicit.
335    
336    ----------------------------------------------------------------------
337    Name: Matthias Blume
338    Date: 2002/01/22
339    Tag: blume-20020122-x86-ccalls
340    Description:
341    
342    Bug fix for c-calls on x86 (having to do with how char- and
343    short-arguments are being handled).
344    
345    ----------------------------------------------------------------------
346    Name: Matthias Blume
347    Date: 2002/01/21
348    Tag: blume-20020121-ff
349    Description:
350    
351    Another day of fiddling with the FFI...
352    
353    1. Bug fix/workaround:  CKIT does not complain about negative array
354       dimensions, so ml-nlffigen has to guard itself against this possibility.
355       (Otherwise a negative dimension would send it into an infinite loop.)
356    
357    2. Some of the abstract types (light objects, light pointers, most "base"
358       types) in structure C are now eqtypes.
359    
360    3. Added constructors and test functions for NULL function pointers.
361    
362    ----------------------------------------------------------------------
363    Name: Matthias Blume
364    Date: 2002/01/18
365    Tag: blume-20020118-ready-for-new-release
366    Description:
367    
368    Made config/srcarchiveurl point to a new place.  (Will provide boot
369    files shortly.)
370    
371    Maybe we christen this to be 110.38?
372    
373    ----------------------------------------------------------------------
374    Name: Matthias Blume
375    Date: 2002/01/18
376    Tag: blume-20020118-more-ffifiddle
377    Description:
378    
379    Today's FFI fiddling:
380    
381      - Provided a structure CGetSet with "convenient" versions of C.Get.* and
382        C.Set.* that use concrete (MLRep.*) arguments and results instead
383        of abstract ones.
384    
385      - Provided word-style bit operations etc. for "int" representation
386        types in MLRep.S<Foo>Bitops where <Foo> ranges over Char, Int, Short,
387        and Long.
388    
389    ----------------------------------------------------------------------
390    Name: Matthias Blume
391    Date: 2002/01/18
392    Tag: blume-20020118-use-x86-fp
393    Description:
394    
395    Now that x86-fast-fp seems to be working, I turned it back on again
396    by default.  (Seems to work fine now, even with the FFI.)
397    
398    Other than that, I added some documentation about the FFI to
399    src/ml-nlffigen/README and updated the FFI test examples in
400    src/ml-nlffi-lib/Tests/*.
401    
402    ----------------------------------------------------------------------
403    Name: Allen Leung
404    Date: 2002/01/17
405    Tag: leunga-20020117-x86-fast-fp-call
406    Description:
407    
408       1. Fixed a problem with handling return fp values when x86's fast fp
409          mode is turned on.
410    
411       2. Minor pretty printing fix for cellset.  Print %st(0) as %st(0) instead
412          of %f32.
413    
414       3. Added a constructor INT32lit to the ast of MLRISC tools.
415    
416    ----------------------------------------------------------------------
417    Name: Matthias Blume
418    Date: 2002/01/16
419    Tag: blume-20020116-ffifiddle
420    Description:
421    
422    More fiddling with the FFI interface:
423    
424     - Make constness 'c instead of rw wherever possible.  This eliminates
425       the need for certain explicit coercions.  (However, due to ML's
426       value polymorphism, there will still be many cases where explicit
427       coercions are necessary.  Phantom types are not the whole answer
428       to modeling a subtyping relationship in ML.)
429    
430     - ro/rw coersions for pointers added.  (Avoids the detour through */&.)
431    
432     - "printf" test example added to src/ml-nlffi-lib/Tests.  (Demonstrates
433       clumsy workaround for varargs problem.)
434    
435    ----------------------------------------------------------------------
436    Name: Lal George
437    Date: 2002/01/15
438    Tag: <none>
439    Description:
440    
441    1. Since COPY instructions are no longer native to the architecture,
442       a generic functor can be used to implement the expandCopies function.
443    
444    2. Allowed EXPORT and IMPORT pseudo-op declarations to appear inside a
445       TEXT segment.
446    
447    ----------------------------------------------------------------------
448    Name: Matthias Blume
449    Date: 2002/01/15
450    Tag: blume-20020115-ffiupdates
451    Description:
452    
453    1. Fix for bug resulting in single-precision float values being returned
454       incorrectly from FFI calls.
455    
456    2. Small modifications to C FFI API:
457    
458        - memory-allocation routines return straight objects (no options)
459          and raise an exception in out-of-memory situations
460        - unsafe extensions to cast between function pointers and pointers
461          from/to ints
462        - added structure C_Debug as an alternative to structure C where
463          pointer-dereferencing (|*| and |*!) always check for null-pointers
464        - added open_lib' to DynLinkage;  open_lib' works like open_lib
465          but also takes a (possibly empty) list of existing library handles
466          that the current library depends on
467    
468    ----------------------------------------------------------------------
469    Name: Matthias Blume
470    Date: 2002/01/10
471    Tag: blume-20020110-newffigen
472    Description:
473    
474    1. Updates to portable graph code.
475    
476    2. Major update to ml-nlffigen and ml-nlffi-lib.  Things are much
477       more scalable now so that even huge interfaces such as the one
478       for GTK compile in finite time and space. :-)
479       See src/ml-nlffigen/README for details on what's new.
480    
481    ----------------------------------------------------------------------
482    Name: Lal George
483    Date: 2001/01/09 14:31:35 EST 2002
484    Tag: george-20011206-rm-native-copy
485    Description:
486    
487            Removed the native COPY and FCOPY instructions
488            from all the architectures and replaced it with the
489            explicit COPY instruction from the previous commit.
490    
491            It is now possible to simplify many of the optimizations
492            modules that manipulate copies. This has not been
493            done in this change.
494    
495  ----------------------------------------------------------------------  ----------------------------------------------------------------------
496  Name: Lal George  Name: Lal George
497  Date: 2001/12/06 16:50:13 EST 2001  Date: 2001/12/06 16:50:13 EST 2001
# Line 341  Line 822 
822    
823  ----------------------------------------------------------------------  ----------------------------------------------------------------------
824  Name: Matthias Blume  Name: Matthias Blume
 >>>>>>> 1.169  
825  Date: 2001/09/18 15:35:00 EDT  Date: 2001/09/18 15:35:00 EDT
826  Tag: blume-20010918-readme11036  Tag: blume-20010918-readme11036
827  Description:  Description:

Legend:
Removed from v.1003  
changed lines
  Added in v.1066

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