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

Legend:
Removed from v.1016  
changed lines
  Added in v.1068

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