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 1279, Wed Oct 16 14:21:07 2002 UTC revision 1353, Mon Sep 8 16:57:39 2003 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume@tti-c.org)
17    Date: 2003/09/08 11:55:00 CDT
18    Tag: blume-20030908-fullpath
19    Description:
20    
21    Made Win32 version of OS.FileSys.fullPath return current directory
22    when given an empty string.  This is what the spec says, and incidentally,
23    CM depends on it.  (CM otherwise goes into an infinite loop in certain
24    cases when presented with the name of a non-existing .cm file.)
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume (blume@tti-c.org)
28    Date: 2003/09/04 16:30:00 CDT
29    Tag: blume-20030905-slices-etc
30    Description:
31    
32      1. Changed interface to vectors and arrays in Basis to match
33         (draft) Basis spec.
34      2. Added signatures and implementations of slices according to
35         Basis spec.
36      3. Edited source code throughout the system to make it compile again
37         under 1. and 2.  (In some cases code had to be added to have it
38         match the new signatures.)
39      4. MLRISC should be backward-compatible: the copies of the originals
40         of files that needed to change under 3. were retained, the .cm files
41         check the compiler version number and use old versions when
42         appropriate.
43      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
44         dirstream -> string option (in accordance with Basis spec).
45      6. When generating code that counts lines, ml-lex used function
46         CharVector.foldli, taking advantage of its old interface.
47         This has been replaced with the corresponding code from
48         CharVectorSlice.  (html-lex must be re-lexed!)
49      7. BitArray in smlnj-lib/Util has been extended/modified to match the
50         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
51      8. Removed temporary additions (fromInternal, toInternal) from the
52         (now obsolete) IntInf in smlnj-lib/Util.
53      9. Cleaned up structure Byte.
54     10. Added localOffset, scan, and fromString to Date (according to spec).
55         Cleaned/corrected implementation of Date.
56         (Still need to check for correctness; implement better canonicalizeDate.)
57     11. Added "scan" to signature IEEE_REAL.
58     12. Some improvements to IntInf [in particular: efficiency-hack for
59         mod and rem when second operand is 2 (for parity checks).]
60     13. Changed representation of type Time.time, using a single IntInf.int
61         value counting microseconds.  This considerably simplified the
62         implementation of structure Time.  We now support negative time
63         values; scan and fromString handle signs.
64     14. Functor PrimIO now takes two additional arguments (VectorSlice and
65         ArraySlice).
66    
67    ----------------------------------------------------------------------
68    Name: Matthias Blume (blume@tti-c.org)
69    Date: 2003/08/28 17:00:00 CDT
70    Tag: blume-20030828-intinf
71    Description:
72    
73    This is a major update which comes with a version number bump
74    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
75    and an implementation of IntInf in the Basis.
76    
77    There are a fairly large number of related changes and updates throughout
78    the system:
79    
80    Basis:
81            - Implemented IntInf.
82            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
83            - Added some missing Real64 operations, most notably Real.toLargeInt.
84            - Added FixedInt as a synonym for Int32.
85    
86    compiler:
87            * Added support for a built-in intinf type.
88              - literals
89              - pattern matching
90              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
91              - overloading on literals and operations
92    
93            This required adding a primitive type intinf, some additional
94            primops, and implementations for several non-trivial intinf
95            operations in Core.  (The intinf type is completely abstract
96            to the compiler; all operations get delegated back to the Core.)
97    
98            * Intinf equality is handled by polyequal.  However, the compiler
99            does not print its usual warning in this case (since polyequal
100            is the right thing to do there).
101    
102            * Improved the organization of structure InlineT.
103    
104            * A word about conversion primops:
105            If conversions involving intinf do not cancel out during
106            CPS contract, then the compiler must insert calls to Core functions.
107            Since all core access must be resolved already during the FLINT
108            translate phase, it would be too late a the time of CPS contract
109            to add new Core calls.  For this reason, conversion primops
110            for intinf carry two arguments:  1. the numeric argument that
111            they are supposed to convert, and 2. the Core function that
112            can help with this conversion if necessary.  If CPS contract
113            eliminates a primop, then the associated Core function becomes
114            dead and goes away.  Intinf conversion primops that do not get
115            eliminated by CPS contract get rewritten into calls of their
116            core functions by a separate, new phase.
117    
118    interactive system:
119            - Control.Print.intinfDepth controls max length of intinf constants
120            being printed. (Analogous to Control.Print.stringDepth.)
121            - Cleanup in printutil and pputil: got rid of unused stuff and
122            duplicates; replaced some of the code with code that makes better
123            use of library functionality.
124    
125    CM:
126            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
127            are no longer silent.
128    
129    CKIT:
130            Fixed mismatched uses of Int32 and LargeInt.  I always decided
131            in favor of LargeInt -- which is now the same as IntInf.
132            CKIT-knowledgable people should check whether this is what's
133            intended and otherwise change things back to using Int32 or
134            FixedInt.
135    
136    Throughout the code:
137            Started using IntInf.int literals and built-in operations
138            (e.g., comparison with 0) where this seems appropriate.
139    
140    
141    ----------------------------------------------------------------------
142    Name: Dave MacQueen (dbm@cs.uchicago.edu)
143    Date: 2003/08/13 11:36:00 CDT
144    Tag: dbm-20030813-mcz-merge1
145    Description:
146    
147    Merging changes from the mcz-branch development branch into trunk.
148    These changes involve replacement of the emulated old prettyprinter
149    interface with direct use of the SML/NJ Lib PP library, and fixing
150    of a couple of bugs (895, 1186) relating to error messages.  A new
151    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
152    has been added.
153    
154    ----------------------------------------------------------------------
155    Name: Matthias Blume (blume@tti-c.org)
156    Date: 2003/08/11 15:45:00 CDT
157    Tag: blume-20030811-windows
158    Description:
159    
160    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
161    
162        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
163    
164    This patch restores SML/NJ's ability to run under win32.  There are a
165    number of changes, including fixes for several bugs that had gone
166    unnoticed until now:
167    
168      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
169        trying to run the win32 version from within cygwin.)
170    
171      - There are a number of simple .bat scripts that substitute for their
172        corresponding Unix shell-scripts.  (See below.)
173    
174      - The internals of ml-build have been modified slightly.  The main
175        difference is that instead of calling ".link-sml" (or link-sml.bat)
176        using OS.Process.system, the ML process delegates this task back
177        to the script.  Otherwise problems arise in mixed environments such
178        as Cygwin where scripts look and work like Unix scripts, but
179        where OS.Process.system cannot run them.
180    
181      - In CM, the srcpath pickler used native pathname syntax -- which
182        is incorrect in the case of cross-compilation.  The new pickle format
183        is independent of platform-specific naming conventions.
184    
185      - Path configuration files (such as lib/pathconfig) can now choose
186        between native and standard syntax.  Placing a line of the form
187    
188            standard!
189    
190        into the file causes all subsequent paths to be interpreted using
191        CM standard pathname syntax (= Unix conventions); a line
192    
193            native!
194    
195        switches back to native style.  This was needed so that
196        path config files can be written portably, see src/system/pathconfig.
197    
198      - Runtime system:
199    
200          - win32-filesys.c:  get_file_time and set_file_time now
201            access modification time, not creation time.
202    
203          - I/O code made aware of new array representation.
204    
205          - Bug fixes in X86.prim.masm.
206    
207       - src/system/makeml made aware of win32. (For use under cygwin
208            and other Unix-environments for windows.)
209    
210       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
211         which caused BinIO.inputAll to fail consistently.
212    
213    .bat scripts:
214    
215       Windows .bat scripts assume that SMLNJ_HOME is defined.
216    
217       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
218         applications (sml, ml-yacc, ml-lex).
219       - ml-build.bat: analogous to ml-build.
220       - config\install.bat:  Analogous to config/install.sh.  This requires
221         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
222         (nmake etc. must be on the path, and vcvars32 must have been run.)
223         Moreover, sources for ml-lex and ml-yacc need to exist under src,
224         and the bootfile hierarchy must have been unpacked under
225         sml.boot.x86-win32.
226         The script is very primitive and does a poor job at error checking.
227         It only installs the base system, ml-lex, and ml-yacc.  No other
228         libraries are being installed (i.e., you get only those that
229         are part of the compiler.)
230       - link-sml.bat:  analogous to .link-sml, but not currently used
231    
232    Unrelated bug fixes:
233    
234      - ml-nlffigen now exports structures ST_* corresponding to incomplete
235        types.
236      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
237        otherwise.)
238    
239    ----------------------------------------------------------------------
240    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
241    Date: 2003/06/17
242    Tag: macqueen-20030617-bug895
243    Description:
244    
245    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
246    Tag will be used for new development branch (mcz-branch) for
247    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
248    
249    ----------------------------------------------------------------------
250    Name: Matthias Blume (blume@tti-c.org)
251    Date: 2003/05/27 16:55:00 CDT
252    Tag: blume-20030527-polyeq
253    Description:
254    
255    Tried to eliminated most cases of polymorphic equality.
256    
257    ----------------------------------------------------------------------
258    Name: Matthias Blume (blume@tti-c.org)
259    Date: 2003/05/21 17:45:00 CDT
260    Tag: blume-20030517-complete
261    Description:
262    
263    Two changes:
264    
265      1. Added a flag for controlling whether non-exhaustive bindings will
266         be treated as errors (default is false).
267      2. Cleaned up the *entire* source tree so that CMB.make goes through
268         without a single non-exhaustive match- or bind warning.
269    
270    ----------------------------------------------------------------------
271    Name: Matthias Blume (blume@tti-c.org)
272    Date: 2003/05/17 10:20:00 CDT
273    Tag: blume-20030517-absyn
274    Description:
275    
276    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
277    
278       This mainly affects the quality of error messages.  However, some
279       of the code is now more straightforward than before. (Treatment of
280       the above four constructs in translate.sml is much simpler than
281       the "macro-expansion" that was going on before.  Plus, the mach-
282       compiler no longer gets invoked just to be able to compile an
283       if-expression.)
284    
285    2. The ErrorMsg.Error exception is now caught and absorbed by the
286       interactive loop.
287    
288    ----------------------------------------------------------------------
289    Name: Allen Leung
290    Date: 2003/05/16 13:05:00 CDT
291    Tag: leunga-20030516-cygwin-runtime
292    Description:
293    
294        Ported the runtime system to cygwin, which uses the unix
295    x86-unix bin files.  Missing/buggy features:
296    
297       o getnetbyname, getnetbyaddr: these functions seem to be missing in
298         the Cygwin library.
299       o Ctrl-C handling may be flaky.
300       o Windows system calls and Windows I/O are not supported.
301    
302       A new set of binfiles is located at:
303    
304         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
305    
306       This is only needed for bootstrapping the cygwin version of smlnj.
307       Other x86 versions can use the existing binfiles.
308    
309    ----------------------------------------------------------------------
310  Name: Matthias Blume  Name: Matthias Blume
311  Date: 2002/10/16 12:00:00 EDT  Date: 2003/04/08 15:42:00 CDT
312    Tag: blume-20030408-listpair
313    Description:
314    
315    1. Added a target 'mlrisc' to installer.
316    
317    2. Added missing elements to structure ListPair.
318    
319    ----------------------------------------------------------------------
320    Name: Allen Leung
321    Date: 2003/01/07 10:40:00 EST
322    Tag: leunga-20030107-int-rem
323    Description:
324    
325    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
326    The arguments to the SUBL instruction were swapped.
327    
328    ----------------------------------------------------------------------
329    Name: Matthias Blume
330    Date: 2002/12/12 16:25:00 EST
331    Tag: blume-20021212-risc-ra
332    Description:
333    
334    Fixed a serious bug in the rewrite code for FP spilling/reloading that
335    sent the RA into an infinite loop when floating point registers get
336    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
337    110.37 and 110.38.)
338    There was another set of potential problems related to the handling of
339    MLRISC annotations (but those did not yet cause real problems, apparently).
340    
341    ----------------------------------------------------------------------
342    Name: Matthias Blume
343    Date: 2002/12/06 22:40:00 EST
344    Tag: blume-20021206-cm-fileid
345    Description:
346    
347    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
348    This fixes the problem of CM getting confused by files that suddenly
349    change their identity (e.g., by getting unlinked and recreated by some
350    text editor such as vi).  There might be a better/cheaper/cleaner way
351    of doing this, but for now this will have to do.
352    
353    ----------------------------------------------------------------------
354    Name: Matthias Blume
355    Date: 2002/10/28 09:50:00 EST
356    Tag: blume-20021028-typecheck
357    Description:
358    
359    Exported structure Typecheck from $smlnj/viscomp/core.cm.
360    
361    ----------------------------------------------------------------------
362    Name: Matthias Blume
363    Date: 2002/10/17 09:10:00 EDT
364  Tag: Release_110_42  Tag: Release_110_42
365  Description:  Description:
366    
367    In good old tradition, there has been a slight hiccup so that we have
368    to patch 110.42 after the fact.   The old release tag has been replaced
369    (see below).
370    
371    The change solves a problem with two competing approaches the
372    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
373    each other's way.
374    
375    This change only affects the runtime system code and the installer script.
376    (No new bootfiles.)
377    
378    ----------------------------------------------------------------------
379    Name: Matthias Blume
380    Date: 2002/10/16 12:00:00 EDT
381    Tag: Release_110_42_removed
382    Description:
383    
384  New working release.  New bootfiles.  New working release.  New bootfiles.
385    
386  ----------------------------------------------------------------------  ----------------------------------------------------------------------

Legend:
Removed from v.1279  
changed lines
  Added in v.1353

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