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 1053, Wed Feb 6 19:11:13 2002 UTC revision 1086, Fri Feb 22 05:56:29 2002 UTC
# Line 13  Line 13 
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  Name: Lal George
326  Date: 2002/02/06 13:55:02 EST  Date: 2002/02/06 13:55:02 EST
327  Tag: george-20020206-ra-breakup  Tag: george-20020206-ra-breakup
# Line 26  Line 335 
335      trap instruction (in this case they are harmless since none of the      trap instruction (in this case they are harmless since none of the
336      integers overflow.)      integers overflow.)
337    
338  2. Plugged out various utility modules that were embedded in the modules  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     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.     they are not complete enough to put into a library (just yet).
341  ----------------------------------------------------------------------  ----------------------------------------------------------------------
342  Name: Matthias Blume  Name: Matthias Blume
343  Date: 2002/01/31 16:05:00 EST  Date: 2002/01/31 16:05:00 EST

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

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