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/branches/primop-branch-3/NOTES/HISTORY
ViewVC logotype

Diff of /sml/branches/primop-branch-3/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1220, Wed May 22 15:04:10 2002 UTC revision 1368, Sat Sep 13 04:44:43 2003 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2003/09/12 11:45:00 CDT
18    Tag: blume-20030912-various
19    Description:
20    
21     - fixed bug in Real.toLargeInt
22     - fixed bug in Posix.ProcEnv.times
23     - changed inputLine functions to return an option
24     - minor installer improvements / bugfixes
25     - changed default @SMLalloc parameter for x86/celeron to 64k
26    
27    ----------------------------------------------------------------------
28    Name: Matthias Blume (blume (at) tti - c (dot) org)
29    Date: 2003/09/09 22:00:00 CDT
30    Tag: Release_110_43
31    Description:
32    
33        New working release 110.43.  New bootfiles.
34    
35    ----------------------------------------------------------------------
36    Name: Matthias Blume (blume (at) tti - c (dot) org)
37    Date: 2003/09/09 19:20:00 CDT
38    Tag: blume-20030909-installer
39    Description:
40    
41    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
42    Modified config/install.bat to take advantage of it.  Also modified
43    config/install.sh (and called it config/new-install.sh) to take advantage
44    of it on Unix systems.  (The SML code is (supposed to be) platform-
45    independent.)
46    
47    The installer can now install everything under Win32
48    as well as under *nix as long as it compiles.
49    
50    Other changes:
51    
52      - made CML compile again under Win32
53      - made eXene compile under Win32 (by providing a fake structure UnixSock
54        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
55      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
56        same as type int;  under Win32 it isn't
57      - fixed some slice-related problems in the win32-specific parts of CML
58      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
59        (under Win32, the volume name is case-insensitive, and the
60        OS.Path code compares volume names for equality)
61    
62    ----------------------------------------------------------------------
63    Name: Matthias Blume (blume (at) tti - c (dot) org)
64    Date: 2003/09/08 11:55:00 CDT
65    Tag: blume-20030908-fullpath
66    Description:
67    
68    Made Win32 version of OS.FileSys.fullPath return current directory
69    when given an empty string.  This is what the spec says, and incidentally,
70    CM depends on it.  (CM otherwise goes into an infinite loop in certain
71    cases when presented with the name of a non-existing .cm file.)
72    
73    ----------------------------------------------------------------------
74    Name: Matthias Blume (blume (at) tti - c (dot) org)
75    Date: 2003/09/04 16:30:00 CDT
76    Tag: blume-20030905-slices-etc
77    Description:
78    
79      1. Changed interface to vectors and arrays in Basis to match
80         (draft) Basis spec.
81      2. Added signatures and implementations of slices according to
82         Basis spec.
83      3. Edited source code throughout the system to make it compile again
84         under 1. and 2.  (In some cases code had to be added to have it
85         match the new signatures.)
86      4. MLRISC should be backward-compatible: the copies of the originals
87         of files that needed to change under 3. were retained, the .cm files
88         check the compiler version number and use old versions when
89         appropriate.
90      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
91         dirstream -> string option (in accordance with Basis spec).
92      6. When generating code that counts lines, ml-lex used function
93         CharVector.foldli, taking advantage of its old interface.
94         This has been replaced with the corresponding code from
95         CharVectorSlice.  (html-lex must be re-lexed!)
96      7. BitArray in smlnj-lib/Util has been extended/modified to match the
97         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
98      8. Removed temporary additions (fromInternal, toInternal) from the
99         (now obsolete) IntInf in smlnj-lib/Util.
100      9. Cleaned up structure Byte.
101     10. Added localOffset, scan, and fromString to Date (according to spec).
102         Cleaned/corrected implementation of Date.
103         (Still need to check for correctness; implement better canonicalizeDate.)
104     11. Added "scan" to signature IEEE_REAL.
105     12. Some improvements to IntInf [in particular: efficiency-hack for
106         mod and rem when second operand is 2 (for parity checks).]
107     13. Changed representation of type Time.time, using a single IntInf.int
108         value counting microseconds.  This considerably simplified the
109         implementation of structure Time.  We now support negative time
110         values; scan and fromString handle signs.
111     14. Functor PrimIO now takes two additional arguments (VectorSlice and
112         ArraySlice).
113    
114    ----------------------------------------------------------------------
115    Name: Matthias Blume (blume (at) tti - c (dot) org)
116    Date: 2003/08/28 17:00:00 CDT
117    Tag: blume-20030828-intinf
118    Description:
119    
120    This is a major update which comes with a version number bump
121    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
122    and an implementation of IntInf in the Basis.
123    
124    There are a fairly large number of related changes and updates throughout
125    the system:
126    
127    Basis:
128            - Implemented IntInf.
129            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
130            - Added some missing Real64 operations, most notably Real.toLargeInt.
131            - Added FixedInt as a synonym for Int32.
132    
133    compiler:
134            * Added support for a built-in intinf type.
135              - literals
136              - pattern matching
137              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
138              - overloading on literals and operations
139    
140            This required adding a primitive type intinf, some additional
141            primops, and implementations for several non-trivial intinf
142            operations in Core.  (The intinf type is completely abstract
143            to the compiler; all operations get delegated back to the Core.)
144    
145            * Intinf equality is handled by polyequal.  However, the compiler
146            does not print its usual warning in this case (since polyequal
147            is the right thing to do there).
148    
149            * Improved the organization of structure InlineT.
150    
151            * A word about conversion primops:
152            If conversions involving intinf do not cancel out during
153            CPS contract, then the compiler must insert calls to Core functions.
154            Since all core access must be resolved already during the FLINT
155            translate phase, it would be too late a the time of CPS contract
156            to add new Core calls.  For this reason, conversion primops
157            for intinf carry two arguments:  1. the numeric argument that
158            they are supposed to convert, and 2. the Core function that
159            can help with this conversion if necessary.  If CPS contract
160            eliminates a primop, then the associated Core function becomes
161            dead and goes away.  Intinf conversion primops that do not get
162            eliminated by CPS contract get rewritten into calls of their
163            core functions by a separate, new phase.
164    
165    interactive system:
166            - Control.Print.intinfDepth controls max length of intinf constants
167            being printed. (Analogous to Control.Print.stringDepth.)
168            - Cleanup in printutil and pputil: got rid of unused stuff and
169            duplicates; replaced some of the code with code that makes better
170            use of library functionality.
171    
172    CM:
173            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
174            are no longer silent.
175    
176    CKIT:
177            Fixed mismatched uses of Int32 and LargeInt.  I always decided
178            in favor of LargeInt -- which is now the same as IntInf.
179            CKIT-knowledgable people should check whether this is what's
180            intended and otherwise change things back to using Int32 or
181            FixedInt.
182    
183    Throughout the code:
184            Started using IntInf.int literals and built-in operations
185            (e.g., comparison with 0) where this seems appropriate.
186    
187    
188    ----------------------------------------------------------------------
189    Name: Dave MacQueen (dbm@cs.uchicago.edu)
190    Date: 2003/08/13 11:36:00 CDT
191    Tag: dbm-20030813-mcz-merge1
192    Description:
193    
194    Merging changes from the mcz-branch development branch into trunk.
195    These changes involve replacement of the emulated old prettyprinter
196    interface with direct use of the SML/NJ Lib PP library, and fixing
197    of a couple of bugs (895, 1186) relating to error messages.  A new
198    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
199    has been added.
200    
201    ----------------------------------------------------------------------
202    Name: Matthias Blume (blume (at) tti - c (dot) org)
203    Date: 2003/08/11 15:45:00 CDT
204    Tag: blume-20030811-windows
205    Description:
206    
207    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
208    
209        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
210    
211    This patch restores SML/NJ's ability to run under win32.  There are a
212    number of changes, including fixes for several bugs that had gone
213    unnoticed until now:
214    
215      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
216        trying to run the win32 version from within cygwin.)
217    
218      - There are a number of simple .bat scripts that substitute for their
219        corresponding Unix shell-scripts.  (See below.)
220    
221      - The internals of ml-build have been modified slightly.  The main
222        difference is that instead of calling ".link-sml" (or link-sml.bat)
223        using OS.Process.system, the ML process delegates this task back
224        to the script.  Otherwise problems arise in mixed environments such
225        as Cygwin where scripts look and work like Unix scripts, but
226        where OS.Process.system cannot run them.
227    
228      - In CM, the srcpath pickler used native pathname syntax -- which
229        is incorrect in the case of cross-compilation.  The new pickle format
230        is independent of platform-specific naming conventions.
231    
232      - Path configuration files (such as lib/pathconfig) can now choose
233        between native and standard syntax.  Placing a line of the form
234    
235            standard!
236    
237        into the file causes all subsequent paths to be interpreted using
238        CM standard pathname syntax (= Unix conventions); a line
239    
240            native!
241    
242        switches back to native style.  This was needed so that
243        path config files can be written portably, see src/system/pathconfig.
244    
245      - Runtime system:
246    
247          - win32-filesys.c:  get_file_time and set_file_time now
248            access modification time, not creation time.
249    
250          - I/O code made aware of new array representation.
251    
252          - Bug fixes in X86.prim.masm.
253    
254       - src/system/makeml made aware of win32. (For use under cygwin
255            and other Unix-environments for windows.)
256    
257       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
258         which caused BinIO.inputAll to fail consistently.
259    
260    .bat scripts:
261    
262       Windows .bat scripts assume that SMLNJ_HOME is defined.
263    
264       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
265         applications (sml, ml-yacc, ml-lex).
266       - ml-build.bat: analogous to ml-build.
267       - config\install.bat:  Analogous to config/install.sh.  This requires
268         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
269         (nmake etc. must be on the path, and vcvars32 must have been run.)
270         Moreover, sources for ml-lex and ml-yacc need to exist under src,
271         and the bootfile hierarchy must have been unpacked under
272         sml.boot.x86-win32.
273         The script is very primitive and does a poor job at error checking.
274         It only installs the base system, ml-lex, and ml-yacc.  No other
275         libraries are being installed (i.e., you get only those that
276         are part of the compiler.)
277       - link-sml.bat:  analogous to .link-sml, but not currently used
278    
279    Unrelated bug fixes:
280    
281      - ml-nlffigen now exports structures ST_* corresponding to incomplete
282        types.
283      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
284        otherwise.)
285    
286    ----------------------------------------------------------------------
287    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
288    Date: 2003/06/17
289    Tag: macqueen-20030617-bug895
290    Description:
291    
292    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
293    Tag will be used for new development branch (mcz-branch) for
294    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
295    
296    ----------------------------------------------------------------------
297    Name: Matthias Blume (blume (at) tti - c (dot) org)
298    Date: 2003/05/27 16:55:00 CDT
299    Tag: blume-20030527-polyeq
300    Description:
301    
302    Tried to eliminated most cases of polymorphic equality.
303    
304    ----------------------------------------------------------------------
305    Name: Matthias Blume (blume (at) tti - c (dot) org)
306    Date: 2003/05/21 17:45:00 CDT
307    Tag: blume-20030517-complete
308    Description:
309    
310    Two changes:
311    
312      1. Added a flag for controlling whether non-exhaustive bindings will
313         be treated as errors (default is false).
314      2. Cleaned up the *entire* source tree so that CMB.make goes through
315         without a single non-exhaustive match- or bind warning.
316    
317    ----------------------------------------------------------------------
318    Name: Matthias Blume (blume (at) tti - c (dot) org)
319    Date: 2003/05/17 10:20:00 CDT
320    Tag: blume-20030517-absyn
321    Description:
322    
323    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
324    
325       This mainly affects the quality of error messages.  However, some
326       of the code is now more straightforward than before. (Treatment of
327       the above four constructs in translate.sml is much simpler than
328       the "macro-expansion" that was going on before.  Plus, the mach-
329       compiler no longer gets invoked just to be able to compile an
330       if-expression.)
331    
332    2. The ErrorMsg.Error exception is now caught and absorbed by the
333       interactive loop.
334    
335    ----------------------------------------------------------------------
336    Name: Allen Leung
337    Date: 2003/05/16 13:05:00 CDT
338    Tag: leunga-20030516-cygwin-runtime
339    Description:
340    
341        Ported the runtime system to cygwin, which uses the unix
342    x86-unix bin files.  Missing/buggy features:
343    
344       o getnetbyname, getnetbyaddr: these functions seem to be missing in
345         the Cygwin library.
346       o Ctrl-C handling may be flaky.
347       o Windows system calls and Windows I/O are not supported.
348    
349       A new set of binfiles is located at:
350    
351         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
352    
353       This is only needed for bootstrapping the cygwin version of smlnj.
354       Other x86 versions can use the existing binfiles.
355    
356    ----------------------------------------------------------------------
357    Name: Matthias Blume
358    Date: 2003/04/08 15:42:00 CDT
359    Tag: blume-20030408-listpair
360    Description:
361    
362    1. Added a target 'mlrisc' to installer.
363    
364    2. Added missing elements to structure ListPair.
365    
366    ----------------------------------------------------------------------
367    Name: Allen Leung
368    Date: 2003/01/07 10:40:00 EST
369    Tag: leunga-20030107-int-rem
370    Description:
371    
372    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
373    The arguments to the SUBL instruction were swapped.
374    
375    ----------------------------------------------------------------------
376    Name: Matthias Blume
377    Date: 2002/12/12 16:25:00 EST
378    Tag: blume-20021212-risc-ra
379    Description:
380    
381    Fixed a serious bug in the rewrite code for FP spilling/reloading that
382    sent the RA into an infinite loop when floating point registers get
383    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
384    110.37 and 110.38.)
385    There was another set of potential problems related to the handling of
386    MLRISC annotations (but those did not yet cause real problems, apparently).
387    
388    ----------------------------------------------------------------------
389    Name: Matthias Blume
390    Date: 2002/12/06 22:40:00 EST
391    Tag: blume-20021206-cm-fileid
392    Description:
393    
394    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
395    This fixes the problem of CM getting confused by files that suddenly
396    change their identity (e.g., by getting unlinked and recreated by some
397    text editor such as vi).  There might be a better/cheaper/cleaner way
398    of doing this, but for now this will have to do.
399    
400    ----------------------------------------------------------------------
401    Name: Matthias Blume
402    Date: 2002/10/28 09:50:00 EST
403    Tag: blume-20021028-typecheck
404    Description:
405    
406    Exported structure Typecheck from $smlnj/viscomp/core.cm.
407    
408    ----------------------------------------------------------------------
409    Name: Matthias Blume
410    Date: 2002/10/17 09:10:00 EDT
411    Tag: Release_110_42
412    Description:
413    
414    In good old tradition, there has been a slight hiccup so that we have
415    to patch 110.42 after the fact.   The old release tag has been replaced
416    (see below).
417    
418    The change solves a problem with two competing approaches the
419    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
420    each other's way.
421    
422    This change only affects the runtime system code and the installer script.
423    (No new bootfiles.)
424    
425    ----------------------------------------------------------------------
426    Name: Matthias Blume
427    Date: 2002/10/16 12:00:00 EDT
428    Tag: Release_110_42_removed
429    Description:
430    
431    New working release.  New bootfiles.
432    
433    ----------------------------------------------------------------------
434    Name: Matthias Blume
435    Date: 2002/10/10 13:10:00 EDT
436    Tag: blume-20021010-ppc-divs
437    Description:
438    
439    The mltree operator DIVS must be implemented with an overflow check on
440    the PPC because the hardware indicates divide-by-zero using "overflow" as
441    well.
442    
443    ----------------------------------------------------------------------
444    Name: Matthias Blume
445    Date: 2002/07/23 11:45:00
446    Tag: blume-20020723-smlnj-home
447    Description:
448    
449    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
450    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
451    CM_PATHCONFIG is also set), the path configuration file is assumed
452    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
453    the entire tree to some other place and everything will "just work".
454    
455    (Companion commands such as ml-build and ml-makedepend also sense this
456    variable.)
457    
458    ----------------------------------------------------------------------
459    Name: Matthias Blume
460    Date: 2002/07/12 21:19:00 EDT
461    Tag: blume-20020712-liveness
462    Description:
463    
464    Exported two useful "step" functions from liveness module (MLRISC).
465    
466    ----------------------------------------------------------------------
467    Name: Matthias Blume
468    Date: 2002/07/05 16:00 EDT
469    Tag: Release_110_41
470    Description:
471    
472    New working release.  New bootfiles.
473    
474    ----------------------------------------------------------------------
475    Name: Matthias Blume
476    Date: 2002/07/05 10:25:00 EDT
477    Tag: blume-20020705-btimp
478    Description:
479    
480    Exported structure BTImp from $smlnj/viscomp/debugprof.cm so that
481    other clients can set up backtracing support.
482    
483    ----------------------------------------------------------------------
484    Name: Matthias Blume
485    Date: 2002/06/25 17:23:00 EDT
486    Tag: blume-20020625-fpmax
487    Description:
488    
489    Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point
490    case.  (The sense of the isNaN test was reversed -- which made min and
491    max always return their first argument.)
492    
493    ----------------------------------------------------------------------
494    Name: Matthias Blume
495    Date: 2002/06/11
496    Tag: blume-20020611-unixpath
497    Description:
498    
499    Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch.
500    
501    ----------------------------------------------------------------------
502    Name: Matthias Blume
503    Date: 2002/06/10 16:35:00 EDT
504    Tag: blume-20020610-ieeereal
505    Description:
506    
507    I back-ported my implementation of IEEEReal.fromString from the
508    idlbasis-devel branch so that we can test it.
509    
510    Another small change is that ppDec tries to give more information
511    than just "<sig>" in the case of functors.  However, this code is
512    broken in some mysterious way if the functor's body's signature
513    has not been declared by ascription but gets inferred from the
514    implementation.  This needs fixing...
515    
516    ----------------------------------------------------------------------
517    Name: Matthias Blume
518    Date: 2002/05/31
519    Tag: blume-20020531-btrace-mode
520    Description:
521    
522    Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by
523    the wayside when I switched over to using Controls everywhere.)
524    
525    ----------------------------------------------------------------------
526    Name: Lal George
527    Date: 2002/05/23 12:21:40 EDT
528    Tag: george-20020523-visual-labels
529    Description:
530    
531    Labels are now displayed in the graphical output to make
532    the fall-through and target blocks obvious.
533    
534    ----------------------------------------------------------------------
535  Name: Matthias Blume  Name: Matthias Blume
536  Date: 2002/05/22 11:03:00 EDT  Date: 2002/05/22 11:03:00 EDT
537  Tag: blume-20020522-shrink  Tag: blume-20020522-shrink

Legend:
Removed from v.1220  
changed lines
  Added in v.1368

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