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

Legend:
Removed from v.1015  
changed lines
  Added in v.1086

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