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 1296, Tue Jan 7 15:40:55 2003 UTC revision 1395, Fri Sep 26 21:03:26 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/26 16:05:00 CDT
18    Tag: blume-20030926-wrappriv
19    Description:
20    
21    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume (blume (at) tti - c (dot) org)
25    Date: 2003/09/26 15:00:00 CDT
26    Tag: blume-20030926-110_43_3
27    Description:
28    
29    - additional cleanup
30    - version number bump, NEW BOOTFILES
31    
32    ----------------------------------------------------------------------
33    Name: Matthias Blume (blume (at) tti - c (dot) org)
34    Date: 2003/09/26 12:00:00 CDT
35    Tag: blume-20030926-ppautoload
36    Description:
37    
38    I modified the read-eval-print loop so that the autoloader gets
39    invoked whenever the prettyprinter tries to look up a symbol that
40    is not currently defined in the toplevel environment but which
41    appears in CM's autoload registry.  As a result, we see far fewer of
42    those ?.Foo.Bar.xxx names in the prettyprinter's output.
43    
44    In addition to this I tried to clean up some pieces of the Basis
45    implementation (e.g., Socket, Word8Array) in order to prevent other
46    instances of these ?.Foo.Bar.xxx names from being printed.
47    
48    The mechanism that picks names for types still needs some work, though.
49    (Right now it seems that if there is a type A.t which is defined to
50    be B.u, but B is unavailable at toplevel, then A.t gets printed as
51    "?.B.u" although the perhaps more sensible solution would be to use
52    "A.t" in this case.  In other words, the prettyprinter should follow
53    a chain of DEFtycs not farther than there are corresponding toplevel
54    names in the current environment.)
55    
56    ----------------------------------------------------------------------
57    Name: Matthias Blume (blume (at) tti - c (dot) org)
58    Date: 2003/09/24 16:31:00 CDT
59    Tag: blume-20030924-installer
60    Description:
61    
62    Another installer tweak:  All the ML code for the installer is now
63    compiled during CMB.make and put into a little library called
64    $smlnj/installer.cm.  The installation then simply invokes
65    
66       sml -m $smlnj/installer.cm
67    
68    and everything happens automagically.
69    
70    Win32:  ML code senses value of environment variable SMLNJ_HOME.
71    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
72            and BINDIR.
73    
74    The new scheme guarantees that the ML code responsible for the installation
75    is in sync with the APIs of the main system.  Also, the installer is
76    somewhat faster because the installer script is precompiled.
77    
78    ----------------------------------------------------------------------
79    Name: Matthias Blume (blume (at) tti - c (dot) org)
80    Date: 2003/09/24 15:35:00 CDT
81    Tag: blume-20030924-synsock
82    Description:
83    
84    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
85    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
86    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
87    implementations of non-blocking operations from CML's Socket
88    structure.
89    
90    ----------------------------------------------------------------------
91    Name: Matthias Blume (blume (at) tti - c (dot) org)
92    Date: 2003/09/24 15:10:05 CDT
93    Tag: blume-20030924-sockets
94    Description:
95    
96    1. Fixed SOCKET API and implementation to match Basis spec.
97       This required changing the internal representation of sockets to one
98       that remembers (for each socket file descriptor) whether it is currently
99       blocking or non-blocking.  This state is maintained lazily (i.e., a system
100       call is made only if the state actually needs to change).
101    
102    2. OS-specific details of sockets were moved into separate files, thus
103       making it possible to unify the bulk of the socket implementations
104       between Unix and Win32.
105    
106    3. CML's socket API changed accordingly.
107       (Note that we need to remove non-blocking functions from this API
108       since they are redundant in the case of CML!)
109    
110    4. CML's socket implementation now makes use of non-blocking functions
111       provided by Basis, thus removing all OS-dependent code from this part
112       of CML.
113    
114    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
115    
116    ----------------------------------------------------------------------
117    Name: Matthias Blume (blume (at) tti - c (dot) org)
118    Date: 2003/09/22 12:10:00 CDT
119    Tag: blume-20030922-110_43_2
120    Description:
121    
122    Made a new interim version and bootfiles for developer's bootstrapping
123    convenience.
124    
125       110.43.2 -- NEW BOOTFILES
126    
127    ----------------------------------------------------------------------
128    Name: Matthias Blume (blume (at) tti - c (dot) org)
129    Date: 2003/09/19 15:55:00 CDT
130    Tag: blume-20030919-cmdir
131    Description:
132    
133    1. new-install.sh -> install.sh
134    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
135    3. tweaked installer so that another name instead of .cm can be chosen
136       at install time (by setting the CM_DIR_ARC environment variable
137       during installation); once installation is complete, the name is
138       fixed
139    
140    ----------------------------------------------------------------------
141    Name: Matthias Blume (blume (at) tti - c (dot) org)
142    Date: 2003/09/18 16:00:00 CDT
143    Tag: blume-20030918-110_43_1
144    Description:
145    
146    Made a new interim version and bootfiles for developer's bootstrapping
147    convenience.
148    
149       110.43.1 -- NEW BOOTFILES
150    
151    ----------------------------------------------------------------------
152    Name: Matthias Blume (blume (at) tti - c (dot) org)
153    Date: 2003/09/18 15:20:00 CDT
154    Tag: blume-20030918-misc
155    Description:
156    
157    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
158       this seems to be controversial at the moment) and used those in
159       Posix.ProcEnv.times.
160    
161    2. Added Time.{from,to}Nanoseconds to Time.
162    
163    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
164       For example, fromLargeInt never needs to look at more than 3 "big
165       digits" to get its 53 bits of precision.
166    
167    ----------------------------------------------------------------------
168    Name: Matthias Blume (blume (at) tti - c (dot) org)
169    Date: 2003/09/17 16:30:00 CDT
170    Tag: blume-20030917-real32-slices
171    Description:
172    
173    Added an entry to the primitive environment
174    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
175    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
176    
177    Removed some of the "magic" constants in real64.sml and replaced them
178    with code that generates these values from their corresponding
179    integer counterparts.
180    
181    Made all(?) the slice-related changes to the Basis and made everything
182    compile again...
183    
184    ----------------------------------------------------------------------
185    Name: Matthias Blume (blume (at) tti - c (dot) org)
186    Date: 2003/09/15 17:45:00 CDT
187    Tag: blume-20030915-rbase
188    Description:
189    
190    Fixed bug in Real.fromLargeInt.
191    
192    ----------------------------------------------------------------------
193    Name: Matthias Blume (blume (at) tti - c (dot) org)
194    Date: 2003/09/13 18:11:00 CDT
195    Tag: blume-20030913-libinstall
196    Description:
197    
198    Minor bugfix in config/libinstall (set anchor with path to
199    standalone tool after installing it, otherwise libraries that
200    need ml-lex or ml-yacc won't compile the first time the installer
201    runs).
202    
203    ----------------------------------------------------------------------
204    Name: Matthias Blume (blume (at) tti - c (dot) org)
205    Date: 2003/09/12 11:45:00 CDT
206    Tag: blume-20030912-various
207    Description:
208    
209     - fixed bug in Real.toLargeInt
210     - fixed bug in Posix.ProcEnv.times
211     - changed inputLine functions to return an option
212     - minor installer improvements / bugfixes
213     - changed default @SMLalloc parameter for x86/celeron to 64k
214    
215    ----------------------------------------------------------------------
216    Name: Matthias Blume (blume (at) tti - c (dot) org)
217    Date: 2003/09/09 22:00:00 CDT
218    Tag: Release_110_43
219    Description:
220    
221        New working release 110.43.  New bootfiles.
222    
223    ----------------------------------------------------------------------
224    Name: Matthias Blume (blume (at) tti - c (dot) org)
225    Date: 2003/09/09 19:20:00 CDT
226    Tag: blume-20030909-installer
227    Description:
228    
229    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
230    Modified config/install.bat to take advantage of it.  Also modified
231    config/install.sh (and called it config/new-install.sh) to take advantage
232    of it on Unix systems.  (The SML code is (supposed to be) platform-
233    independent.)
234    
235    The installer can now install everything under Win32
236    as well as under *nix as long as it compiles.
237    
238    Other changes:
239    
240      - made CML compile again under Win32
241      - made eXene compile under Win32 (by providing a fake structure UnixSock
242        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
243      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
244        same as type int;  under Win32 it isn't
245      - fixed some slice-related problems in the win32-specific parts of CML
246      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
247        (under Win32, the volume name is case-insensitive, and the
248        OS.Path code compares volume names for equality)
249    
250    ----------------------------------------------------------------------
251    Name: Matthias Blume (blume (at) tti - c (dot) org)
252    Date: 2003/09/08 11:55:00 CDT
253    Tag: blume-20030908-fullpath
254    Description:
255    
256    Made Win32 version of OS.FileSys.fullPath return current directory
257    when given an empty string.  This is what the spec says, and incidentally,
258    CM depends on it.  (CM otherwise goes into an infinite loop in certain
259    cases when presented with the name of a non-existing .cm file.)
260    
261    ----------------------------------------------------------------------
262    Name: Matthias Blume (blume (at) tti - c (dot) org)
263    Date: 2003/09/04 16:30:00 CDT
264    Tag: blume-20030905-slices-etc
265    Description:
266    
267      1. Changed interface to vectors and arrays in Basis to match
268         (draft) Basis spec.
269      2. Added signatures and implementations of slices according to
270         Basis spec.
271      3. Edited source code throughout the system to make it compile again
272         under 1. and 2.  (In some cases code had to be added to have it
273         match the new signatures.)
274      4. MLRISC should be backward-compatible: the copies of the originals
275         of files that needed to change under 3. were retained, the .cm files
276         check the compiler version number and use old versions when
277         appropriate.
278      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
279         dirstream -> string option (in accordance with Basis spec).
280      6. When generating code that counts lines, ml-lex used function
281         CharVector.foldli, taking advantage of its old interface.
282         This has been replaced with the corresponding code from
283         CharVectorSlice.  (html-lex must be re-lexed!)
284      7. BitArray in smlnj-lib/Util has been extended/modified to match the
285         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
286      8. Removed temporary additions (fromInternal, toInternal) from the
287         (now obsolete) IntInf in smlnj-lib/Util.
288      9. Cleaned up structure Byte.
289     10. Added localOffset, scan, and fromString to Date (according to spec).
290         Cleaned/corrected implementation of Date.
291         (Still need to check for correctness; implement better canonicalizeDate.)
292     11. Added "scan" to signature IEEE_REAL.
293     12. Some improvements to IntInf [in particular: efficiency-hack for
294         mod and rem when second operand is 2 (for parity checks).]
295     13. Changed representation of type Time.time, using a single IntInf.int
296         value counting microseconds.  This considerably simplified the
297         implementation of structure Time.  We now support negative time
298         values; scan and fromString handle signs.
299     14. Functor PrimIO now takes two additional arguments (VectorSlice and
300         ArraySlice).
301    
302    ----------------------------------------------------------------------
303    Name: Matthias Blume (blume (at) tti - c (dot) org)
304    Date: 2003/08/28 17:00:00 CDT
305    Tag: blume-20030828-intinf
306    Description:
307    
308    This is a major update which comes with a version number bump
309    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
310    and an implementation of IntInf in the Basis.
311    
312    There are a fairly large number of related changes and updates throughout
313    the system:
314    
315    Basis:
316            - Implemented IntInf.
317            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
318            - Added some missing Real64 operations, most notably Real.toLargeInt.
319            - Added FixedInt as a synonym for Int32.
320    
321    compiler:
322            * Added support for a built-in intinf type.
323              - literals
324              - pattern matching
325              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
326              - overloading on literals and operations
327    
328            This required adding a primitive type intinf, some additional
329            primops, and implementations for several non-trivial intinf
330            operations in Core.  (The intinf type is completely abstract
331            to the compiler; all operations get delegated back to the Core.)
332    
333            * Intinf equality is handled by polyequal.  However, the compiler
334            does not print its usual warning in this case (since polyequal
335            is the right thing to do there).
336    
337            * Improved the organization of structure InlineT.
338    
339            * A word about conversion primops:
340            If conversions involving intinf do not cancel out during
341            CPS contract, then the compiler must insert calls to Core functions.
342            Since all core access must be resolved already during the FLINT
343            translate phase, it would be too late a the time of CPS contract
344            to add new Core calls.  For this reason, conversion primops
345            for intinf carry two arguments:  1. the numeric argument that
346            they are supposed to convert, and 2. the Core function that
347            can help with this conversion if necessary.  If CPS contract
348            eliminates a primop, then the associated Core function becomes
349            dead and goes away.  Intinf conversion primops that do not get
350            eliminated by CPS contract get rewritten into calls of their
351            core functions by a separate, new phase.
352    
353    interactive system:
354            - Control.Print.intinfDepth controls max length of intinf constants
355            being printed. (Analogous to Control.Print.stringDepth.)
356            - Cleanup in printutil and pputil: got rid of unused stuff and
357            duplicates; replaced some of the code with code that makes better
358            use of library functionality.
359    
360    CM:
361            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
362            are no longer silent.
363    
364    CKIT:
365            Fixed mismatched uses of Int32 and LargeInt.  I always decided
366            in favor of LargeInt -- which is now the same as IntInf.
367            CKIT-knowledgable people should check whether this is what's
368            intended and otherwise change things back to using Int32 or
369            FixedInt.
370    
371    Throughout the code:
372            Started using IntInf.int literals and built-in operations
373            (e.g., comparison with 0) where this seems appropriate.
374    
375    
376    ----------------------------------------------------------------------
377    Name: Dave MacQueen (dbm@cs.uchicago.edu)
378    Date: 2003/08/13 11:36:00 CDT
379    Tag: dbm-20030813-mcz-merge1
380    Description:
381    
382    Merging changes from the mcz-branch development branch into trunk.
383    These changes involve replacement of the emulated old prettyprinter
384    interface with direct use of the SML/NJ Lib PP library, and fixing
385    of a couple of bugs (895, 1186) relating to error messages.  A new
386    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
387    has been added.
388    
389    ----------------------------------------------------------------------
390    Name: Matthias Blume (blume (at) tti - c (dot) org)
391    Date: 2003/08/11 15:45:00 CDT
392    Tag: blume-20030811-windows
393    Description:
394    
395    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
396    
397        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
398    
399    This patch restores SML/NJ's ability to run under win32.  There are a
400    number of changes, including fixes for several bugs that had gone
401    unnoticed until now:
402    
403      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
404        trying to run the win32 version from within cygwin.)
405    
406      - There are a number of simple .bat scripts that substitute for their
407        corresponding Unix shell-scripts.  (See below.)
408    
409      - The internals of ml-build have been modified slightly.  The main
410        difference is that instead of calling ".link-sml" (or link-sml.bat)
411        using OS.Process.system, the ML process delegates this task back
412        to the script.  Otherwise problems arise in mixed environments such
413        as Cygwin where scripts look and work like Unix scripts, but
414        where OS.Process.system cannot run them.
415    
416      - In CM, the srcpath pickler used native pathname syntax -- which
417        is incorrect in the case of cross-compilation.  The new pickle format
418        is independent of platform-specific naming conventions.
419    
420      - Path configuration files (such as lib/pathconfig) can now choose
421        between native and standard syntax.  Placing a line of the form
422    
423            standard!
424    
425        into the file causes all subsequent paths to be interpreted using
426        CM standard pathname syntax (= Unix conventions); a line
427    
428            native!
429    
430        switches back to native style.  This was needed so that
431        path config files can be written portably, see src/system/pathconfig.
432    
433      - Runtime system:
434    
435          - win32-filesys.c:  get_file_time and set_file_time now
436            access modification time, not creation time.
437    
438          - I/O code made aware of new array representation.
439    
440          - Bug fixes in X86.prim.masm.
441    
442       - src/system/makeml made aware of win32. (For use under cygwin
443            and other Unix-environments for windows.)
444    
445       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
446         which caused BinIO.inputAll to fail consistently.
447    
448    .bat scripts:
449    
450       Windows .bat scripts assume that SMLNJ_HOME is defined.
451    
452       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
453         applications (sml, ml-yacc, ml-lex).
454       - ml-build.bat: analogous to ml-build.
455       - config\install.bat:  Analogous to config/install.sh.  This requires
456         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
457         (nmake etc. must be on the path, and vcvars32 must have been run.)
458         Moreover, sources for ml-lex and ml-yacc need to exist under src,
459         and the bootfile hierarchy must have been unpacked under
460         sml.boot.x86-win32.
461         The script is very primitive and does a poor job at error checking.
462         It only installs the base system, ml-lex, and ml-yacc.  No other
463         libraries are being installed (i.e., you get only those that
464         are part of the compiler.)
465       - link-sml.bat:  analogous to .link-sml, but not currently used
466    
467    Unrelated bug fixes:
468    
469      - ml-nlffigen now exports structures ST_* corresponding to incomplete
470        types.
471      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
472        otherwise.)
473    
474    ----------------------------------------------------------------------
475    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
476    Date: 2003/06/17
477    Tag: macqueen-20030617-bug895
478    Description:
479    
480    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
481    Tag will be used for new development branch (mcz-branch) for
482    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
483    
484    ----------------------------------------------------------------------
485    Name: Matthias Blume (blume (at) tti - c (dot) org)
486    Date: 2003/05/27 16:55:00 CDT
487    Tag: blume-20030527-polyeq
488    Description:
489    
490    Tried to eliminated most cases of polymorphic equality.
491    
492    ----------------------------------------------------------------------
493    Name: Matthias Blume (blume (at) tti - c (dot) org)
494    Date: 2003/05/21 17:45:00 CDT
495    Tag: blume-20030517-complete
496    Description:
497    
498    Two changes:
499    
500      1. Added a flag for controlling whether non-exhaustive bindings will
501         be treated as errors (default is false).
502      2. Cleaned up the *entire* source tree so that CMB.make goes through
503         without a single non-exhaustive match- or bind warning.
504    
505    ----------------------------------------------------------------------
506    Name: Matthias Blume (blume (at) tti - c (dot) org)
507    Date: 2003/05/17 10:20:00 CDT
508    Tag: blume-20030517-absyn
509    Description:
510    
511    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
512    
513       This mainly affects the quality of error messages.  However, some
514       of the code is now more straightforward than before. (Treatment of
515       the above four constructs in translate.sml is much simpler than
516       the "macro-expansion" that was going on before.  Plus, the mach-
517       compiler no longer gets invoked just to be able to compile an
518       if-expression.)
519    
520    2. The ErrorMsg.Error exception is now caught and absorbed by the
521       interactive loop.
522    
523    ----------------------------------------------------------------------
524    Name: Allen Leung
525    Date: 2003/05/16 13:05:00 CDT
526    Tag: leunga-20030516-cygwin-runtime
527    Description:
528    
529        Ported the runtime system to cygwin, which uses the unix
530    x86-unix bin files.  Missing/buggy features:
531    
532       o getnetbyname, getnetbyaddr: these functions seem to be missing in
533         the Cygwin library.
534       o Ctrl-C handling may be flaky.
535       o Windows system calls and Windows I/O are not supported.
536    
537       A new set of binfiles is located at:
538    
539         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
540    
541       This is only needed for bootstrapping the cygwin version of smlnj.
542       Other x86 versions can use the existing binfiles.
543    
544    ----------------------------------------------------------------------
545    Name: Matthias Blume
546    Date: 2003/04/08 15:42:00 CDT
547    Tag: blume-20030408-listpair
548    Description:
549    
550    1. Added a target 'mlrisc' to installer.
551    
552    2. Added missing elements to structure ListPair.
553    
554    ----------------------------------------------------------------------
555  Name: Allen Leung  Name: Allen Leung
556  Date: 2003/01/07 10:40:00 EST  Date: 2003/01/07 10:40:00 EST
557  Tag: leunga-20030107-int-rem  Tag: leunga-20030107-int-rem

Legend:
Removed from v.1296  
changed lines
  Added in v.1395

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