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 1055, Thu Feb 7 20:38:59 2002 UTC revision 1078, Tue Feb 19 21:26:48 2002 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2002/02/19 16:20:00 EST
18    Tag: blume-20020219-cmffi
19    Description:
20    
21    A wild mix of changes, some minor, some major:
22    
23    * All C FFI-related libraries are now anchored under $c:
24        $/c.cm      --> $c/c.cm
25        $/c-int.cm  --> $c/internals/c-int.cm
26        $/memory.cm --> $c/memory/memory.cm
27    
28    * "make" tool (in CM) now treats its argument pathname slightly
29      differently:
30        1. If the native expansion is an absolute name, then before invoking
31           the "make" command on it, CM will apply OS.Path.mkRelative
32           (with relativeTo = OS.FileSys.getDir()) to it.
33        2. The argument will be passed through to subsequent phases of CM
34           processing without "going native".  In particular, if the argument
35           was an anchored path, then "make" will not lose track of that anchor.
36    
37    * Compiler backends now "know" their respective C calling conventions
38      instead of having to be told about it by ml-nlffigen.  This relieves
39      ml-nlffigen from one of its burdens.
40    
41    * The X86Backend has been split into X86CCallBackend and X86StdCallBackend.
42    
43    * Export C_DEBUG and C_Debug from $c/c.cm.
44    
45    * C type encoding in ml-nlffi-lib has been improved to model the conceptual
46      subtyping relationship between incomplete pointers and their complete
47      counterparts.  For this, ('t, 'c) ptr has been changed to 'o ptr --
48      with the convention of instantiating 'o with ('t, 'c) obj whenever
49      the pointer target type is complete.  In the incomplete case, 'o
50      will be instantiated with some "'c iobj" -- a type obtained by
51      using one of the functors PointerToIncompleteType or PointerToCompleteType.
52    
53      Operations that work on both incomplete and complete pointer types are
54      typed as taking an 'o ptr while operations that require the target to
55      be known are typed as taking some ('t, 'c) obj ptr.
56    
57      voidptr is now a bit "more concrete", namely "type voidptr = void ptr'"
58      where void is an eqtype without any values.  This makes it possible
59      to work on voidptr values using functions meant to operate on light
60      incomplete pointers.
61    
62    * As a result of the above, signature POINTER_TO_INCOMPLETE_TYPE has
63      been vastly simplified.
64    
65    ----------------------------------------------------------------------
66    Name: Matthias Blume
67    Date: 2002/02/19 10:48:00 EST
68    Tag: blume-20020219-pqfix
69    Description:
70    
71    Applied Chris Okasaki's bug fix for priority queues.
72    
73    ----------------------------------------------------------------------
74    Name: Matthias Blume
75    Date: 2002/02/15 17:05:00
76    Tag: Release_110_39
77    Description:
78    
79    Last-minute retagging is becoming a tradition... :-(
80    
81    This is the working release 110.39.
82    
83    ----------------------------------------------------------------------
84    Name: Matthias Blume
85    Date: 2002/02/15 16:00:00 EST
86    Tag: Release_110_39-orig
87    Description:
88    
89    Working release 110.39.  New bootfiles.
90    
91    (Update: There was a small bug in the installer so it wouldn't work
92    with all shells.  So I retagged. -Matthias)
93    
94    ----------------------------------------------------------------------
95    Name: Matthias Blume
96    Date: 2002/02/15 14:17:00 EST
97    Tag: blume-20020215-showbindings
98    Description:
99    
100    Added EnvRef.listBoundSymbols and CM.State.showBindings.  Especially
101    the latter can be useful for exploring what bindings are available at
102    the interactive prompt.  (The first function returns only the list
103    of symbols that are really bound, the second prints those but also the
104    ones that CM's autoloading mechanism knows about.)
105    
106    ----------------------------------------------------------------------
107    Name: Matthias Blume
108    Date: 2002/02/15 12:08:00 EST
109    Tag: blume-20020215-iptrs
110    Description:
111    
112    Two improvements to ml-nlffigen:
113    
114      1. Write files only if they do not exist or if their current contents
115         do not coincide with what's being written.  (That is, avoid messing
116         with the time stamps unless absolutely necessary.)
117    
118      2. Implement a "repository" mechanism for generated files related
119         to "incomplete pointer types".   See the README file for details.
120    
121    ----------------------------------------------------------------------
122    Name: Matthias Blume
123    Date: 2002/02/14 11:50:00 EST
124    Tag: blume-20020214-quote
125    Description:
126    
127    Added a type 't t_' to tag.sml (in ml-nlffi-lib.cm).  This is required
128    because of the new and improved tag generation scheme.  (Thanks to Allen
129    Leung for pointing it out.)
130    
131    ----------------------------------------------------------------------
132    Name: Lal George
133    Date: 2002/02/14 09:55:27 EST 2002
134    Tag: george-20020214-isabelle-bug
135    Description:
136    
137    Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation
138    of Isabelle on the x86.
139    
140    From Allen:
141    -----------
142     I've found the problem:
143    
144         in ra-core.sml, I use the counter "blocked" to keep track of the
145         true number of elements in the freeze queue.  When the counter goes
146         to zero, I skip examining the queue.  But I've messed up the
147         bookkeeping in combine():
148    
149             else ();
150             case !ucol of
151               PSEUDO => (if !cntv > 0 then
152                     (if !cntu > 0 then blocked := !blocked - 1 else ();
153                                        ^^^^^^^^^^^^^^^^^^^^^^^
154                      moveu := mergeMoveList(!movev, !moveu)
155                     )
156                  else ();
157    
158         combine() is called to coalesce two nodes u and v.
159         I think I was thinking that if the move counts of u and v are both
160         greater than zero then after they are coalesced then one node is
161         removed from the freeze queue.  Apparently I was thinking that
162         both u and v are of low degree, but that's clearly not necessarily true.
163    
164    
165    02/12/2002:
166        Here's the patch.  HOL now compiles.
167    
168        I don't know how this impact on performance (compile
169        time or runtime).  This bug caused the RA (especially on the x86)
170        to go thru the potential spill phase when there are still nodes on the
171        freeze queue.
172    
173    
174    
175    
176    ----------------------------------------------------------------------
177    Name: Matthias Blume
178    Date: 2002/02/13 22:40:00 EST
179    Tag: blume-20020213-fptr-rtti
180    Description:
181    
182    Fixed a bug in ml-nlffigen that was introduced with one of the previous
183    updates.
184    
185    ----------------------------------------------------------------------
186    Name: Matthias Blume
187    Date: 2002/02/13 16:41:00 EST
188    Tag: blume-20020213-cmlpq
189    Description:
190    
191    Added new priority queue export symbols (which have just been added to
192    smlnj-lib.cm) to CML's version of smlnj-lib.cm.  (Otherwise CML would
193    not compile and the installer would choke.)
194    
195    ----------------------------------------------------------------------
196    Name: Matthias Blume
197    Date: 2002/02/13 16:15:00 EST
198    Tag: blume-20020213-various
199    Description:
200    
201    1. More tweaks to ml-nlffigen:
202    
203       - better internal datastructures (resulting in slight speedup)
204       - "-match" option requires exact match
205       - "localized" gensym counters (untagged structs/unions nested within
206         other structs/unions or within typedefs get a fresh counter; their
207         tag will be prefixed by a concatenation of their parents' tags)
208       - bug fixes (related to calculation of transitive closure of types
209         to be included in the output)
210    
211    2. Minor Basis updates:
212    
213       - added implementations for List.collate and Option.app
214    
215    ----------------------------------------------------------------------
216    Name: Matthias Blume
217    Date: 2002/02/11 15:55:00 EST
218    Tag: blume-20020211-gensym
219    Description:
220    
221    Added a "-gensym" option to command line of ml-nlffigen.  This can be
222    used to specify a "stem" -- a string that is inserted in all "gensym'd"
223    names (ML structure names that correspond to unnamed C structs, unions,
224    and enums), so that separate runs of ml-nlffigen do not clash.
225    
226    ----------------------------------------------------------------------
227    Name: Matthias Blume
228    Date: 2002/02/11 12:05:00 EST
229    Tag: blume-20020211-gensml
230    Description:
231    
232    A quick fix for a problem with GenSML (in the pgraph-util library):
233    Make generation of toplevel "local" optional.  (Strictly speaking,
234    signature definitions within "local" are not legal SML.)
235    
236    Other than that: updates to INSTALL and cm/TODO.
237    
238    ----------------------------------------------------------------------
239    Name: Matthias Blume
240    Date: 2002/02/08 15:00:00 EST
241    Tag: blume-20020208-uniquepid
242    Description:
243    
244    0. Version number has been bumped to 110.38.1.  NEW BOOTFILES!!!
245    
246    1. The installer (config/install.sh) has gotten smarter:
247    
248         - Configuration options are a bit easier to specify now
249           (in config/targets).
250         - Bug in recognizing .tar.bz2 files fixed.
251         - Installer automatically resolves dependencies between
252           configuration options (e.g., if you ask for eXene, you will
253           also get cml -- regardless whether you asked for it or not).
254         - Installer can run in "quieter mode" by setting the environment
255           variable INSTALL_QUIETLY to "true".  "Quieter" does not mean
256           "completely silent", though.
257         - Build HashCons library as part of smlnj-lib.
258    
259    2. A new scheme for assigning persistent identifiers to compilation
260       units (and, by extension, to types etc.) has been put into place.
261       This fixes a long-standing bug where types and even dynamic values
262       can get internally confused, thereby compromising type safety
263       (abstraction) and dynamic correctness.  See
264    
265         http://cm.bell-labs.com/cm/cs/who/blume/pid-confusion.tgz
266    
267       for an example of how things could go wrong until now.
268    
269       The downside of the new scheme is that pids are not quite as
270       persistent as they used to be: CM will generate a fresh pid
271       for every compilation unit that it thinks it sees for the first
272       time.  That means that if you compile starting from a clean, fresh
273       source tree at two different times, you end up with different
274       binaries.
275    
276       Cutoff recompilation, however, has not been compromised because
277       CM keeps pid information in special caches between runs.
278    
279    ----------------------------------------------------------------------
280  Name: Lal George  Name: Lal George
281  Date: 2002/02/07 15:34:13 EST 2002  Date: 2002/02/07 15:34:13 EST 2002
282  Tag: <none>  Tag: <none>

Legend:
Removed from v.1055  
changed lines
  Added in v.1078

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