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 1760, Fri Feb 25 20:46:23 2005 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2005/02/25 14:50:00 CST
18    Tag: blume-20050225-susp
19    Description:
20    
21    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
22    implemented in Core -- which means that it is the same as the one used
23    by the lazy extension.
24    
25    ----------------------------------------------------------------------
26    Name: Matthias Blume (blume (at) tti - c (dot) org)
27    Date: 2005/02/24 16:50:00 CST
28    Tag: blume-20050224-cml-atom
29    Description:
30    
31    Simpler and at the same time more general implementation of structure
32    Atom in CML.
33    
34    ----------------------------------------------------------------------
35    Name: Matthias Blume (blume (at) tti - c (dot) org)
36    Date: 2005/02/15 17:35:00 CST
37    Tag: blume-20050215-tools
38    Description:
39    
40    Created new "tools" directory under "src" and moved "TraceDebugProf"
41    there.
42    
43    ----------------------------------------------------------------------
44    Name: Matthias Blume (blume (at) tti - c (dot) org)
45    Date: 2005/02/10 17:55:00 CST
46    Tag: blume-20050210-longlong
47    Description:
48    
49    Implemented "long long" arguments and results for NLFFI.  (Only the
50    PPC/MacOS implementation is complete, the other backends still need to
51    be updated.)
52    
53    ----------------------------------------------------------------------
54    Name: Matthias Blume (blume (at) tti - c (dot) org)
55    Date: 2005/01/24 17:40:00 CST
56    Tag: blume-20050124-mlyacc
57    Description:
58    
59    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
60    problem with certain "as" patterns which previously got rendered
61    using incorrect syntax.
62    
63    ----------------------------------------------------------------------
64    Name: Matthias Blume (blume (at) tti - c (dot) org)
65    Date: 2005/01/18 12:00:00 CST
66    Tag: blume-20050118-profile
67    Description:
68    
69    Made time profiling code (interrupt handler) in runtime system aware
70    of new array representation.
71    
72    ----------------------------------------------------------------------
73    Name: Matthias Blume (blume (at) tti - c (dot) org)
74    Date: 2005/01/14 18:00:00 CST
75    Tag: blume-20050114-heap2exec
76    Description:
77    
78    Implemented new (but still experimental) heap2exec facility.  This is
79    tested under Mac OS X and should work under Linux (will test shortly).
80    It will probably also work on the Sparc (will test some time later).
81    
82      - removed old "HACKED_STANDALONE" hack from runtime
83    
84    To be able to test this, uncomment the request for "heap2asm" in
85    config/targets prior to installation.  (Notice that this is different
86    from "heap2exec" mentioned below.  Not a typo.)
87    
88    To perform an actual test, run the command
89    
90       $ bin/heap2exec heapfile execfile
91    
92    (You can put heap2exec on your shell's path.)
93    
94    For example, run
95    
96      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
97    
98    This will create a standalone executable called "mly" which you can
99    then invoke directly as a command.
100    
101    ----------------------------------------------------------------------
102    Name: Matthias Blume (blume (at) tti - c (dot) org)
103    Date: 2005/01/07 11:44:00 CST
104    Tag: blume-20050107-mlstring
105    Description:
106    
107    fixed off-by-one error in ML_STRING macro (globals.c)
108    
109    ----------------------------------------------------------------------
110    Name: Matthias Blume (blume (at) tti - c (dot) org)
111    Date: 2004/12/23 18:00:00 CST
112    Tag: blume-20041223-santa
113    Description:
114    
115    Made ml-build script "smarter" (but only very little).
116    
117    ----------------------------------------------------------------------
118    Name: Matthias Blume (blume (at) tti - c (dot) org)
119    Date: 2004/12/21 15:05:00 CST
120    Tag: blume-20041221-longlong
121    Description:
122    
123    * Implemented access to signed and unsigned long long data in NLFFI.
124    (The parameter-passing part of the picture has not complete. But
125    data structure access seems to work.)
126    
127    * Fixed CM's incorrect assumption that the PPC is little-endian.
128      (On the Mac, it is big-endian.  And that's currently our only
129      PPC platform.)
130    
131    ----------------------------------------------------------------------
132    Name: Matthias Blume (blume (at) tti - c (dot) org)
133    Date: 2004/12/21 12:50:00 CST
134    Tag: blume-20041221-memory
135    Description:
136    
137    Some cleanup in the $c/memory.cm library: separated some concerns by
138    moving allocation code and memory access code each into their own
139    files.
140    
141    ----------------------------------------------------------------------
142    Name: Allen Leung (leunga (at) reservoir (dot) com)
143    Date: 2004/12/17 16:12:00 EST
144    Tag: leunga-20041217-cygwin-smlnj-home
145    Description:
146    
147        The Unix I/O library of SML/NJ on cygwin does not understand
148    Windows style pathname, so problems arise when SMLNJ_HOME is set
149    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
150    to a POSIX pathname on cygwin.
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume (blume (at) tti - c (dot) org)
154    Date: 2004/12/16 13:35:00 CST
155    Tag: Release_110_52
156    Description:
157    
158    Last-minute changes incorporated into 110.52.  Release tag moved.
159    
160    The changes:
161       - HashString.hashString' -> HashString.hashSubstring
162       - bug fix in UnivariateStats
163    
164    ----------------------------------------------------------------------
165    Name: Matthias Blume (blume (at) tti - c (dot) org)
166    Date: 2004/12/15 23:40:00 CST
167    Tag: blume-20041215-hashSubstring
168    Description:
169    
170    - HashString.hashString' -> HashString.hashSubstring
171    - corresponding changes in atom.sml
172    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
173      added some comments
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume (blume (at) tti - c (dot) org)
177    Date: 2004/12/15 15:30:00 CST
178    Tag: (Release_110_52)
179    Description:
180    
181    New working version (110.52).  NEW BOOTFILES!
182    
183    ----------------------------------------------------------------------
184    Name: Matthias Blume (blume (at) tti - c (dot) org)
185    Date: 2004/12/15 12:45:00 CST
186    Tag: blume-20041215-spaces
187    Description:
188    
189    More on the space problem (this time for Win32).
190    
191    ----------------------------------------------------------------------
192    Name: Matthias Blume (blume (at) tti - c (dot) org)
193    Date: 2004/12/14 17:30:00 CST
194    Tag: blume-20041214-spaces
195    Description:
196    
197    Hacked some of the scripts (in particular: the installer) to cope with
198    spaces in filenames a bit better.  But beware: the current "solution"
199    is likely still full of bugs and inherently incomplete.  (We need to
200    do away with those shell scripts for a comprehensive solution.)
201    
202    ----------------------------------------------------------------------
203    Name: Matthias Blume (blume (at) tti - c (dot) org)
204    Date: 2004/12/13 14:45:00 CST
205    Tag: blume-20041213-ml-makedepend
206    Description:
207    
208    Fixed bug in code for ml-makedepend.
209    
210    ----------------------------------------------------------------------
211    Name: Matthias Blume (blume (at) tti - c (dot) org)
212    Date: 2004/12/09 16:30:00 CST
213    Tag: blume-20041209-statistics
214    Description:
215    
216    Added two simple but potentially useful statistics modules to SML/NJ Library.
217    (See CHANGES file there.)
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume (blume (at) tti - c (dot) org)
221    Date: 2004/12/01 16:50:00 CST
222    Tag: blume-20041201-atom
223    Description:
224    
225    smlnj-lib:
226    
227      Added function HashString.hashString' for substrings.
228      Hand-inlined CharVector.foldl into HashString (for speed).
229      Modified implementation of structure Atom to avoid extracting
230      strings from substrings unless necessary.
231      (Also see CHANGES file for smlnj-lib.)
232    
233    ----------------------------------------------------------------------
234    Name: Matthias Blume (blume (at) tti - c (dot) org)
235    Date: 2004/11/24 22:15:00 CST
236    Tag: blume-20041124-cml
237    Description:
238    
239    Made sure CML compiles when Position = Int64.
240    
241    ----------------------------------------------------------------------
242    Name: Matthias Blume (blume (at) tti - c (dot) org)
243    Date: 2004/11/24 14:30:00 CST
244    Tag: blume-20041124-position
245    Description:
246    
247    The compiler can now be compiled in a mode that makes structure Position
248    equal to Int64.  The default, however, is unchanged (Position = Int31)
249    for the time being.
250    
251    To enable 64-bit positions, use the following procedure:
252    
253    1. Start sml
254    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
255    3. Type
256          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
257    4. Run CMB.make() as usual.
258    
259    This is barely tested.  The only test so far was a little SML program
260    counting the number of characters in an 8-gigabyte file by
261    reading it character-by-character.  That test was successful.
262    
263    In support of 64-bit positions, a number of new functions have been
264    added to the runtime system.
265    
266    ----------------------------------------------------------------------
267    Name: Matthias Blume (blume (at) tti - c (dot) org)
268    Date: 2004/11/23 14:45:00 CST
269    Tag: blume-20041123-useFile
270    Description:
271    
272    Fixed a problem with unhelpful error messages related to problems with
273    .cm- or .sml files that appear as part of the sml command line.
274    
275    ----------------------------------------------------------------------
276    Name: Matthias Blume (blume (at) tti - c (dot) org)
277    Date: 2004/11/18 15:40:00 CST
278    Tag: Release_110_51
279    Description:
280    
281    New working version (110.51).  NEW BOOTFILES!
282    
283    ----------------------------------------------------------------------
284    Name: Matthias Blume (blume (at) tti - c (dot) org)
285    Date: 2004/11/18 15:35:00 CST
286    Tag: <none>
287    Description:
288    
289    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
290    Joemann).
291    
292    ----------------------------------------------------------------------
293    Name: Allen Leung (leunga (at) reservoir (dot) com)
294    Date: 2004/11/17 16:05:21 EST 2004
295    Tag: leunga-20041117-mlrisc-live-kill
296    Description:
297    
298       Added support for MLTree constructs LIVE and KILL
299    to all the architectures.
300    
301    ----------------------------------------------------------------------
302    Name: Matthias Blume (blume (at) tti - c (dot) org)
303    Date: 2004/11/13 00:20:00 CST
304    Tag: blume-20041113-versiontool
305    Description:
306    
307    - Stripped down the versiontool: It now only handles the version number.
308      The date string is generated at bootstrap time (during makeml).
309    
310    - In a previous commit, fixed a minor issue with how polyequal is being
311      translated.  In particular, the code now "looks through" abstractions.
312      This results in slightly fewer polyEqual warnings and hopefully slightly
313      more efficient code.  Important examples for where this matters are
314      the new int64 and word64 types.
315    
316    ----------------------------------------------------------------------
317    Name: Matthias Blume (blume (at) tti - c (dot) org)
318    Date: 2004/11/12 00:30:00 CST
319    Tag: blume-20041112-int64
320    Description:
321    
322    Structure Int64 fully hooked in.  (The implementation is not very
323    efficient, though.)
324    
325    ----------------------------------------------------------------------
326    Name: Matthias Blume (blume (at) tti - c (dot) org)
327    Date: 2004/11/11 17:30:00 CST
328    Tag: blume-20041111-more64
329    Description:
330    
331    All the pieces of Word64 are now there, with the exception of the
332    conversions from and to LargeWord. (Eventually these need to be identities,
333    but for the time being they don't even make sense because LargeWord is
334    32-bit wide.)
335    
336    Also started to add similar support for Int64, but major pieces of that
337    are still missing.
338    
339    ----------------------------------------------------------------------
340    Name: Matthias Blume (blume (at) tti - c (dot) org)
341    Date: 2004/11/11 00:15:00 CST
342    Tag: blume-20041111-word64
343    Description:
344    
345    Structure Word64 is now (almost) complete, word literals and patterns
346    seem to work.  There are a few odd pieces missing.  In particular,
347    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
348    at the moment.
349    
350    Making Word64 official would mean that LargeWord becomes Word64.  But
351    this requires extreme care because most word-word conversions have to
352    go through LargeWord, so making a mistake means loss of efficiency or
353    worse.  Eventually there will be a solution similar to (but actually
354    simpler than) what I did with IntInf.
355    
356    ----------------------------------------------------------------------
357    Name: Matthias Blume (blume (at) tti - c (dot) org)
358    Date: 2004/11/10 18:12:00 CST
359    Tag: blume-20041110-64bit
360    Description:
361    
362    More 64-bit hacking (but still not even half-way there yet).
363    Also, some assorted improvements to the handling of 8-bit words.
364    
365    ----------------------------------------------------------------------
366    Name: Matthias Blume (blume (at) tti - c (dot) org)
367    Date: 2004/11/09 17:50:00 CST
368    Tag: <none>
369    Description:
370    
371    Started adding some infrastructure for supporting 64-bit int- and
372    word-types.  (Still in its very early stages.)
373    
374    ----------------------------------------------------------------------
375    Name: Matthias Blume (blume (at) tti - c (dot) org)
376    Date: 2004/10/28 10:45:00 CDT
377    Tag: Release_110_50
378    Description:
379    
380    New working version (110.50).  NEW BOOTFILES!
381    
382                 =====================
383    
384    Also:
385    
386      - Changend config/srcarchiveurl from a file just
387        containing the URL string into a file containing
388        shell script code.  The code has access to the $VERSION variable.
389      - Made corresponding changes to config/install.sh and config/unpack.
390      - Default contents of config/srcarchiveurl uses $VERSION and
391        normally does not have to be edited to reflect a version change.
392    
393      (As a result, a version change can be done by just editing
394       config/version, the rest is now automatic.)
395    
396    ----------------------------------------------------------------------
397    Name: Matthias Blume (blume (at) tti - c (dot) org)
398    Date: 2004/10/27 17:50:00 CDT
399    Tag: blume-20041027-btrace-msg
400    Description:
401    
402    BackTrace.monitor now also reports the source of the exception that
403    triggered the trace.
404    
405    ----------------------------------------------------------------------
406    Name: Matthias Blume (blume (at) tti - c (dot) org)
407    Date: 2004/10/27 17:20:00 CDT
408    Tag: blume-20041027-x86-c-calls
409    Description:
410    
411    This is the HISTORY entry for two earlier commits, both concerning
412    the x86 c-calls code in MLRISC:
413    
414      - added a missing LOAD in the code that deals with struct arguments
415      - made sure the caller does not add the wrong number of bytes to the
416        stack pointer after a call of a function returning a struct
417        (the callee already pops the implicit argument which points to
418         the space reserved for the result)
419    
420    ----------------------------------------------------------------------
421    Name: Allen Leung (leunga (at) reservoir (dot) com)
422    Date: 2004/10/24 14:00:00 EST
423    Tag: leunga-20041024-x86-gas-fucomip
424    Description:
425    
426       John discovered a bug in the syntax of fucomip.
427       The opcodes FU?COMIP? have been changed to
428    
429           fu?comip? %st(i), %st
430    
431    ----------------------------------------------------------------------
432    Name: Matthias Blume (blume (at) tti - c (dot) org)
433    Date: 2004/10/20 15:06:00 CDT
434    Tag: blume-20041020-standalone-backtrace
435    Description:
436    
437    Added a mechanism for getting back-trace information from standalone
438    programs.  Here is how it works:
439    
440       1. The part of the program from which you want to get backtrace
441          information (usually the whole program) should be wrapped with
442          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
443          main program could be modified from something like
444    
445             fun main (pgm, args) = ...
446    
447         to
448    
449            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
450    
451       2. To be able to access BackTrace.monitor, you have to add
452          library $smlnj-tdp/plugins.cm to the .cm file that contains your
453          main function.
454    
455       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
456          CM might have created in the past for your project).
457    
458       4. Build the system using this command line:
459    
460             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
461                      myprog.cm MyProg.main myprog
462    
463          instead of the usual
464    
465             ml-build myprog.cm MyProg.main myprog
466    
467    I changed a library name:
468    
469       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
470    
471    New libraries:
472    
473       $smlnj-tdp/back-trace.cm
474          -- when loaded causes the back-trace plugin to be installed
475       $smlnj-tdp/coverage.cm
476          -- when loaded causes the coverage plugin to be installed
477    
478    ----------------------------------------------------------------------
479    Name: Matthias Blume (blume (at) tti - c (dot) org)
480    Date: 2004/10/18 16:45:00 CDT
481    Tag: blume-20041018-groupowner
482    Description:
483    
484    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
485    
486    Eliminated group owner specs from .cm files throughout the source tree.
487    
488    ----------------------------------------------------------------------
489    Name: Matthias Blume (blume (at) tti - c (dot) org)
490    Date: 2004/10/15 15:45:00 CDT
491    Tag: blume-20041015-coverage
492    Description:
493    
494    * Test coverage tool added!
495    * Further reorganization of tracing-, debugging-, and profiling support:
496    
497        - moved original BTImp -- now called BackTrace -- into a separate
498          library called $/trace-debug-profile.cm
499        - eliminated all mentions of BTrace from SMLofNJ.Internals
500        - only the instrumentation mechanism is now left in the compiler proper
501        - BackTrace module is a plugin which is NOT plugged in by default
502        - Coverage module is another such plugin
503    
504    To get the benefits of any of these plugin modules, the code in
505    question must be compiled with tdp instrumentation turned on.  This
506    can be done by setting SMLofNJ.Internals.TDP.mode to true.
507    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
508    
509    Plugins are selected at link time.  (Pre-compiled instrumented code
510    can be re-loaded with different plugins in effect.)  When an
511    instrumented module is linked, whatever plugins are at that time
512    enabled will come into effect for that module.
513    
514    To enable the back-trace plugin, load library $/trace-debug-profile.cm
515    and invoke BackTrace.install() (e.g., from the interactive prompt).
516    To enable the coverage plugin, load the same library and invoke
517    Coverage.install().
518    
519    Back-traces are generated automatically on uncaught exceptions and
520    when the code in question explicitly invokes BackTrace.trigger().
521    
522    Coverage (and execution frequency-) information must be queried
523    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
524    
525    ----------------------------------------------------------------------
526    Name: Matthias Blume (blume (at) tti - c (dot) org)
527    Date: 2004/10/14 17:40:00 CDT
528    Tag: blume-20041014-tdp-core
529    Description:
530    
531    Snapshot of a significant overhaul of how the trace/debug/profile support
532    is hooked into the system (specifically: Core and SMLofNJ.Internals).
533    
534    ----------------------------------------------------------------------
535    Name: Matthias Blume (blume (at) tti - c (dot) org)
536    Date: 2004/10/13 16:34:00 CDT
537    Tag: blume-20041013-tdp
538    Description:
539    
540    Some rationalization of names:
541    
542       structure BTrace -> structure TDPInstrument
543       etc.
544    
545    This is is preparation of using the original back-trace
546    instrumentation for other purposes.  "TDP" stands for
547    Trace/Debug/Profile.
548    
549    The control flag controlling whether instrumentation is on or off is now
550    registered under a different name, so instead of running sml as
551    
552     sml -Cinstrument.btrace-mode=true
553    
554    one has to say
555    
556     sml -Ctdp.instrument=true
557    
558    ----------------------------------------------------------------------
559    Name: Matthias Blume (blume (at) tti - c (dot) org)
560    Date: 2004/10/11 16:37:00 CDT
561    Tag: blume-20041011-regions
562    Description:
563    
564    Made some minor modifications to elabcore.sml to have source regions
565    be propagated more tightly -- resulting in better (i.e., smaller)
566    regions being reported in error- and debug messages.
567    
568    ----------------------------------------------------------------------
569    Name: Matthias Blume (blume (at) tti - c (dot) org)
570    Date: 2004/10/08 22:50:00 CDT
571    Tag: blume-20041008-cmkw
572    Description:
573    
574    Fixed handling of keywords in .cm files: After seeing "is" the lexer
575    treats subsequent occurrences of "group", "library", "source", "is",
576    "*", and "-" as ordinary identifiers rather than keywords.
577    
578    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
579    is supposed to accept a tool argument called "source", but this did
580    not work because of the clash with the keyword.
581    
582    ----------------------------------------------------------------------
583    Name: Matthias Blume (blume (at) tti - c (dot) org)
584    Date: 2004/10/07 16:00:00 CDT
585    Tag: blume-20041007-cleanup
586    Description:
587    
588    Assorted cleanup work:
589    
590      - got rid of intstrmap in favor of using the library's
591        hash table implementation
592      - threw out most of the pathnames stuff, as it was not used anyway
593      - simplified tokentable implementation
594      - fixed some minor spelling errors
595    
596    ----------------------------------------------------------------------
597    Name: Matthias Blume (blume (at) tti - c (dot) org)
598    Date: 2004/10/06 15:15:15 CDT
599    Tag: blume-20041006-handler
600    Description:
601    
602    Cleaned up the absyn to reflect the invariant that HANDLE always
603    carries a FNexp as part of the type definition.  This eliminates some
604    superfluous sanity checks at runtime down the road.
605    
606    Some minor cleanup of the btrace code.
607    
608    ----------------------------------------------------------------------
609    Name: Matthias Blume (blume (at) tti - c (dot) org)
610    Date: 2004/10/01 10:20:30 CDT
611    Tag: blume-20041001-slave
612    Description:
613    
614    Added hack to make slave mode work in the presence of the version
615    tool.  (Still, since the master does two passes over the code for
616    CMB.make, the release number gets bumped twice when slaves are
617    attached.  I don't know if this is worth fixing...)
618    
619    ----------------------------------------------------------------------
620    Name: Matthias Blume (blume (at) tti - c (dot) org)
621    Date: 2004/09/30 10:55:00 CDT
622    Tag: blume-20040930-version
623    Description:
624    
625    * Moved the "version" magic into its own little library under
626      src/system/smlnj/internal.  This avoids expensive reconstruction of
627      a stable src/compiler/core.cm.
628    
629    * At the same time, structure CompilerVersion is now known as
630      structure SMLNJVersion.
631    
632    * Arranged for the version tool to NOT kick in when rebuilding the system
633      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
634      Also, loading the versiontool does not work when rebuilding the system
635      because CM is not properly initialized at that time.
636    
637    ----------------------------------------------------------------------
638    Name: Matthias Blume (blume (at) tti - c (dot) org)
639    Date: 2004/09/29 14:00:00 CDT
640    Tag: blume-20040929-autoversion
641    Description:
642    
643    Implemented some CM magic to have
644        file src/compiler/TopLevel/main/version.sml
645    generated automagically.
646    The version is taken from two files: config/version and config/release.
647    The first is expected to contain a two-part version number such as 110.49.
648    The second should contain a single number, but it may be missing.
649    
650    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
651    time the version tool is loaded (which is the first time you say CMB.make),
652    then the tool will increment the value stored in config/release every
653    time CMB.make is invoked.
654    
655    The binfile format is now insensitive to anything beyond the first
656    two components of a version number, so bumping the release does not render
657    binfiles incompatible.  Auto-bumping can be used to keep track of versions
658    during development without invalidating existing binfiles.
659    
660    In any case, every CMB.make updates the date information in version.sml.
661    (This is the date that is printed in the banner.)
662    
663    ----------------------------------------------------------------------
664    Name: Matthias Blume (blume (at) tti - c (dot) org)
665    Date: 2004/09/28 10:53:00 CDT
666    Tag: blume-20040928-controls
667    Description:
668    
669    Some cleanup of the controls code.
670    
671    ----------------------------------------------------------------------
672    Name: Matthias Blume (blume (at) tti - c (dot) org)
673    Date: 2004/09/27 22:08:00 CDT
674    Tag: blume-20040927-controls
675    Description:
676    
677    Added two pieces of functionality to the Controls interface:
678    
679    1.   val save'restore: 'a control -> unit -> unit
680    
681       grabs the current value of the control in stage 1 and restores it
682       in stage 2.
683    
684    2.   val set' : 'a control * 'a -> unit -> unit
685    
686       stores the given value into the control in stage 2 (i.e., delayed)
687       but does all error checking in stage 1.
688       (This is for string controls that need to do parse their argument --
689        something that might fail.  In some cases, notably in CM, one
690        already knows the intended argument but wants to delay the actual
691        assignment until a time when error recovery would be more difficult.)
692    
693    Changed the handling of controls in tool arguments to classes "sml" and
694    "lazysml":
695       - use Controls.save'restore as a more robust way of restoring the
696         old value (in particular: without having to re-parse the string)
697       - use controls to handle the "overload" keyword in the init group
698         (I believe this change actually fixes a long-standing obscure bug.)
699    
700    ----------------------------------------------------------------------
701    Name: Matthias Blume (blume (at) tti - c (dot) org)
702    Date: 2004/09/27 17:00:00 CDT
703    Tag: blume-20040927-lazysml
704    Description:
705    
706    Added a new tool class called "lazysml" to CM's tool chest.  The only
707    difference to "sml" is that compilation is done with Control.lazysml
708    set to true.  A source of class "lazysml" is automatically recognized
709    by a file name suffix of ".lml".
710    
711    In addition to the above feature, the original class "sml" now also
712    supports a tool argument "lazy" which has the same effect.  As a
713    result, the following three lines are equivalent:
714    
715        foo.sml : lazysml
716        foo.sml : sml (lazy)
717        foo.sml (lazy)
718    
719    The setting goes into effect both during parsing and during
720    compilation.  The original setting is restored right after parsing and
721    after compilation, respectively.
722    
723    In addition to all the above, there is also a general mechanism to set
724    ANY of the "controls" that are available at the command line via
725    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
726    apply as well. (In fact, "lazy" is implemented as a special case of
727    the general mechanism.)
728    
729    The .cm file syntax uses a new keyword tool argument called "with".
730    There are several ways of indicating the desired settings:
731    
732        foo.sml (with:parser.quotations=true)
733        foo.sml (with:(name:parser.quotations value:true))
734        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
735        foo.sml (with:(name1=value1 name2=value2 ...))
736        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
737    
738        etc.
739    
740    Another possible abbreviation is to leave out the =v or value:v part
741    if the name refers to a boolean control (in which case the value is
742    taken to be true).  Thus, one could get lazy sml also by saying:
743    
744        foo.sml (with:parser.lazy-keyword=true)
745        foo.sml (with:parser.lazy-keyword)
746        foo.sml (with:(name:parser.lazy-keyword value:true))
747        foo.sml (with:(name:parser.lazy-keyword))
748    
749    ----------------------------------------------------------------------
750    Name: Matthias Blume (blume (at) tti - c (dot) org)
751    Date: 2004/09/24 16:22:00 CDT
752    Tag: blume-20040924-ppc-long-branch
753    Description:
754    
755    Turned message about "emiting long form of branch" off by default.
756    Added a control flag to turn it back on when desired.
757    
758    ----------------------------------------------------------------------
759    Name: Matthias Blume (blume (at) tti - c (dot) org)
760    Date: 2004/09/24 16:05:00 CDT
761    Tag: blume-20040924-rounding
762    Description:
763    
764    Applied patch for setting rounding modes under Mac OS X.  Thanks to
765    Melissa O'Neill for providing the code!
766    
767    ----------------------------------------------------------------------
768    Name: Matthias Blume (blume (at) tti - c (dot) org)
769    Date: 2004/09/23 17:30:00 CDT
770    Tag: blume-20040923-envvars
771    Description:
772    
773    1. Changed definition of type ControlRegistry.registry_tree to
774       include control_info (i.e., the name of the controlling environment
775       variable).
776    
777    2. Added command-line flags -e and -E to print the names of environment
778       variables that can be used to control internal settings.
779       (This uses the new API mentioned in 1.)
780    
781    ----------------------------------------------------------------------
782    Name: Matthias Blume (blume (at) tti - c (dot) org)
783    Date: 2004/09/13 16:50:00 CDT
784    Tag: Release_110_49
785    Description:
786    
787    New working version (110.49).  NEW BOOTFILES!
788    
789    ----------------------------------------------------------------------
790    Name: Matthias Blume
791    Date: 2004/09/13 16:20:00 CDT
792    Tag: blume-20040913-config-mlrisc
793    Description:
794    
795    Put target "mlrisc" back into the default list.
796    (There is no harm in having it, and some users have expressed their
797    wish to have "mlrisc" included by default.)
798    
799    ----------------------------------------------------------------------
800    Name: John Reppy
801    Date: 2004/09/13
802    Tag: jhr-20040913-signals
803    Description:
804    
805    Fixed the signal masking code to properly nest mask/unmask operations
806    on a per-signal basis.
807    
808    ----------------------------------------------------------------------
809    Name: Matthias Blume (blume (at) tti - c (dot) org)
810    Date: 2004/09/08 13:20:00 CDT
811    Tag: blume-20040908-heap-magic
812    Description:
813    
814    Bumped the heap macig number to 0x09082004 to account for the changed
815    layout of the ML frame under MacOS X.
816    
817    ----------------------------------------------------------------------
818    Name: Allen Leung (leunga (at) reservoir (dot) com)
819    Date: 2004/09/03 11:26:00 EST
820    Tag: leunga-20040903-cygwin-install
821    Description:
822    
823       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
824    The Cygwin runtime is turned on by setting the environment
825    variable SMLNJ_CYGWIN_RUNTIME to 1.
826    
827    ----------------------------------------------------------------------
828    Name: Matthias Blume (blume (at) tti - c (dot) org)
829    Date: 2004/08/31 17:15:00 CDT
830    Tag: blume-20040831-core
831    Description:
832    
833    Added some exports to src/compiler/core.cm upon request by J. Joemann.
834    
835    ----------------------------------------------------------------------
836    Name: Matthias Blume (blume (at) tti - c (dot) org)
837    Date: 2004/08/30 17:55:00 CDT
838    Tag: blume-20040830-installer
839    Description:
840    
841    Upon request by Johannes Joemann:
842    
843    - improved ML code of installer to fall back to coping when renaming
844      fails (i.e., when source and target are on different file systems);
845      the code compiles but has yet to be tested in anger
846    - removed mlrisc from list of default targets (config/targets)
847    
848    ----------------------------------------------------------------------
849    Name: Matthias Blume (blume (at) tti - c (dot) org)
850    Date: 2004/08/27 17:20:00 CDT
851    Tag: blume-20040827-ptreql
852    Description:
853    
854    Added ptreql primop to structure InlineT (upon request from Larry
855    Paulson).
856    
857    ----------------------------------------------------------------------
858    Name: Allen Leung (leunga (at) reservoir (dot) com)
859    Date: 2004/08/15 21:21:00 EST
860    Tag: leunga-110_48-udgraph
861    Description:
862    
863    Another bug fix from Carl Hauser:
864    
865    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
866    > 48c48
867    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
868    > e::L)
869    > ---
870    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
871    > Without this, any deletion of an edge in an undirected graph does severe
872    > violence to the graph.
873    
874    ----------------------------------------------------------------------
875    Name: Allen Leung (leunga (at) reservoir (dot) com)
876    Date: 2004/08/10 23:35:00 EST
877    Tag: leunga-110_48-ppc
878    Description:
879    
880       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
881    
882    ----------------------------------------------------------------------
883    Name: Matthias Blume (blume (at) tti - c (dot) org)
884    Date: 2004/08/10 12:00:00 CDT
885    Tag: Release_110_48
886    Description:
887    
888    New working version (110.48).  NEW BOOTFILES!
889    
890    ----------------------------------------------------------------------
891    Name: Allen Leung (leunga (at) reservoir (dot) com)
892    Date: 2004/08/09 12:21:00 EST
893    Tag: leunga-110_47-dijsktra
894    Description:
895    
896    Bug fix from Carl Hauser:
897    
898    single_source_shortest_paths in dijkstra.sml was observed to get wrong
899    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
900    
901    The problem is that following the expression A.update(dist,s,Num.zero)
902    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
903    
904    ----------------------------------------------------------------------
905    Name: Matthias Blume (blume (at) tti - c (dot) org)
906    Date: 2004/08/06 18:10:00 CDT
907    Tag: blume-20040806-cmdline
908    Description:
909    
910    Fiddled with handling of command-line options:
911    
912      * sml now quits after processing the command line
913        if -H, -S, -h<n>, or -s<n> appears as the last
914        command-line argument
915      * a new option -q terminates the session when encountered on
916        the command line; subsequent arguments will be ignored
917      * bug fixes: short (erroneous) arguments are no longer ignored
918        completely
919    
920    ----------------------------------------------------------------------
921    Name: Allen Leung (leunga (at) reservoir (dot) com)
922    Date: 2004/08/04 18:17:00 EST
923    Tag: leunga-110_47-ppc-ibm-asm
924    Description:
925    
926      - Added minimal IBM assembly syntax support for PowerPC.
927    
928      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
929        been altered in the runtime.  We need an automatic way to keep the file
930        in sync.
931    
932    ----------------------------------------------------------------------
933    Name: Matthias Blume (blume (at) tti - c (dot) org)
934    Date: 2004/08/04 14:00:00 CDT
935    Tag: Release_110_47
936    Description:
937    
938    New working version (110.47).  NEW BOOTFILES!
939    
940    ----------------------------------------------------------------------
941    Name: Matthias Blume (blume (at) tti - c (dot) org)
942    Date: 2004/08/03 14:25:00 CDT
943    Tag: blume-20040803-callingconv
944    Description:
945    
946    Added low-level support for choosing C calling conventions by
947    twiddling the type of rawccall.  (See
948    src/compiler/Semant/types/cproto.sml for details.)
949    
950    ----------------------------------------------------------------------
951    Name: Matthias Blume (blume (at) tti - c (dot) org)
952    Date: 2004/08/02 15:55:00 CDT
953    Tag: blume-20040802-backout
954    Description:
955    
956    Backed out of change to win32-filesys.c.  The earlier patch to
957    get_file_time caused CM to produce files with the wrong time stamp.
958    
959    ----------------------------------------------------------------------
960    Name: Matthias Blume (blume (at) tti - c (dot) org)
961    Date: 2004/08/02 14:45:00 CDT
962    Tag: blume-20040802-nlffi-win32
963    Description:
964    
965    Added NLFFI support for Win32, adapted from a patch provided by David
966    Hansel.  This is currently completely untested.  Also, the issue
967    concerning stdcall vs. ccall is still unresolved.
968    
969    ----------------------------------------------------------------------
970    Name: Matthias Blume (blume (at) tti - c (dot) org)
971    Date: 2004/07/30 17:55:00 CDT
972    Tag: blume-20040730-various
973    Description:
974    
975    Gearing up towards 110.47...
976    
977    - various minor bugfixes to ml-nlffigen
978    - a beginning of a manual for nlffi
979    
980    - eliminated 'export name=value' in config/install.sh as this does
981      not work with certain versions of /bin/sh
982      (Thanks to David King at Motorola for catching this.)
983    
984    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
985      - added a test for tm==NULL to gmtime.c and localtime.c
986      - applied patch for incorrect GetFileTime under win32
987      - toSeconds -> toMilliseconds in Win32/win32-process.sml
988    
989    ----------------------------------------------------------------------
990    Name: Matthias Blume (blume (at) tti - c (dot) org)
991    Date: 2004/07/21 18:20:00 CDT
992    Tag: blume-20040721-nlffigen
993    Description:
994    
995    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
996      for a typedef to an incomplete type, but leave out the "typ" member.
997      (This is just for consistency.)
998    - Started to produce what is supposed to become better (i.e., comprehensive)
999      documentation of what ml-nlffigen does and produces.
1000    
1001    ----------------------------------------------------------------------
1002    Name: Matthias Blume (blume (at) tti - c (dot) org)
1003    Date: 2004/07/14 16:25:00 CDT
1004    Tag: blume-20040714-union
1005    Description:
1006    
1007    Added C_UNION to c-calls/c-types.sml and updated the machinery
1008    (ml-nlffigen, cproto.sml) that conveys C function interface
1009    information to the code generator.
1010    
1011    However, the actual architecture-specific implementation of function
1012    arguments and results that are C unions is still not implemented.
1013    
1014    ----------------------------------------------------------------------
1015    Name: Allen Leung (leunga (at) reservoir (dot) com)
1016    Date: 2004/07/14 14:38:00 EST
1017    Tag: leunga-110_46_1-ppc-lwzu
1018    Description:
1019    
1020        Added these instructions to the PowerPC architecture:
1021        LBZU(X), LHZU(X), LWZU(X),
1022        STWU(X), STFDU, STFSU
1023    
1024        etc...
1025    
1026        Note: I haven't added their instruction encoding into the description.
1027    
1028    ----------------------------------------------------------------------
1029    Name: Allen Leung (leunga (at) reservoir (dot) com)
1030    Date: 2004/07/13 15:04:00 EST
1031    Tag: leunga-110_46_1-ppc-lwarx
1032    Description:
1033    
1034       Added the two instructions LWARX and STWCX to the PowerPC
1035    instruction set.
1036    
1037       A (untested) rewrite of loop-structure.sml.  The old version
1038    is completely broken.
1039    
1040    ----------------------------------------------------------------------
1041    Name: Matthias Blume (blume (at) tti - c (dot) org)
1042    Date: 2004/07/13 13:50:00 CDT
1043    Tag: blume-20040713-nlffi
1044    Description:
1045    
1046    - use paramAlloc to report c-calls with too many arguments
1047      (for PPC version where parameter area is pre-allocated)
1048    - added ccall_maxargspace to machspec (to implement the above)
1049    - made "make" commend in CM's "make" tool configurable
1050    - added option (default: on) for passing the name of the SML/NJ's "bin"
1051      directory to "make"; the call looks like this:
1052    
1053         make <options> SMLNJ_BINDIR=<dir> <target>
1054    
1055      This can be used by the Makefile to, e.g., pick the "right" version
1056      of ml-nlffigen.
1057    - minor code tweaks
1058    
1059    ----------------------------------------------------------------------
1060    Name: Matthias Blume (blume (at) tti - c (dot) org)
1061    Date: 2004/07/12 22:50:00 CDT
1062    Tag: blume-110_46_1-macosx-nlffi
1063    Description:
1064    
1065    NLFFI under Mac OS X now working (sort of).  This is largely untested,
1066    though.
1067    
1068    Note:  1. You have to make a new, clean build of the runtime system.
1069           2. There are new BOOTFILES, you have to use them!
1070              (Doing the bootstrap process yourself would be *very* painful!
1071               If you absolutely have to do it, build the system under
1072               a different architecture and then cross-compile.)
1073    
1074    Version bumped to 110.46.1 to account for runtime data format changes.
1075    
1076    ----------------------------------------------------------------------
1077    Name: Matthias Blume (blume (at) tti - c (dot) org)
1078    Date: 2004/06/18 14:30:00 CDT
1079    Tag: blume-20040618-unix
1080    Description:
1081    
1082    Changed the implementation of structure Unix so that the same stream
1083    is returned every time one of the {text,bin}{In,Out}streamOf functions
1084    is invoked on the same proc.  This is not what the spec currently
1085    says -- although IMO it arguably should.  (See discussion below.)
1086    
1087    ----------------------------------------------------------------------
1088    Name: Matthias Blume (blume (at) tti - c (dot) org)
1089    Date: 2004/06/17 18:15:00 CDT
1090    Tag: Release_110_46
1091    Description:
1092    
1093    New working version (110.46).  NEW BOOTFILES!
1094    
1095    ----------------------------------------------------------------------
1096    Name: Matthias Blume (blume (at) tti - c (dot) org)
1097    Date: 2004/06/17 17:20:00 CDT
1098    Tag: blume-20040617-timer-unix
1099    Description:
1100    
1101    Changed the interface of structures Timer and Unix to match the most
1102    recent Basis spec.
1103    
1104    In the case of Unix there still seems to be an open/weird issue:
1105    
1106       The {text,bin}{In,Out}streamOf functions are supposed to create
1107       fresh streams whenever they are called -- as opposed to have them
1108       return the same stream every time.  This design is supposed to
1109       prevent space leaks caused by proc values hanging on to streams.
1110    
1111       The reap function, on the other hand, is supposed to close the
1112       streams.  This cannot be done without having a handle on the
1113       stream in proc after all...
1114    
1115    I took the liberty to implement the following stopgap solution:
1116    
1117      The proc value hangs on to the most recently created stream(s).
1118      Reap closes those.  If either or both of the two streams hadn't
1119      been created at all yet, then reap will close the corresponding
1120      file descriptors directly.
1121    
1122    PS: I don't understand the original space leak argument anymore.  If
1123    a proc hangs on to the imperative stream, then I/O operations on those
1124    will advance the state of the cached stream and avoid the space leak.
1125    
1126    ----------------------------------------------------------------------
1127    Name: Matthias Blume (blume (at) tti - c (dot) org)
1128    Date: 2004/05/28 16:45:00 CDT
1129    Tag: blume-20040528-basis
1130    Description:
1131    
1132    Added signature PACK_REAL and exported functor PrimIO.
1133    
1134    ----------------------------------------------------------------------
1135    Name: Matthias Blume (blume (at) tti - c (dot) org)
1136    Date: 2004/05/25 16:00:00 CDT
1137    Tag: blume-20040525-group-owner
1138    Description:
1139    
1140    CM now ignores (but still accepts) the "owner" information in group
1141    descriptions.  The owner of a group is its next enclosing
1142    library. Each group must have a unique owner.  (There is a virtual
1143    "toplevel" library that owns groups which are not nested within a real
1144    library.)  Previously, each group had to explicitly declare its owner,
1145    and CM would check that such a declaration is correct.  The new scheme
1146    is to have CM check that for each group there is precisely one owning
1147    library.
1148    
1149    The advantage of the new scheme is that the programmer no longer needs
1150    to maintain the somewhat annoying owner information.  The downside is
1151    that CM cannot enforce the ownership rule across multiple runs of
1152    CM.make.  Fortunately, enclosing the same group in two different
1153    libraries A and B which are not part of the same program does not
1154    cause real problems.
1155    
1156    ----------------------------------------------------------------------
1157    Name: Matthias Blume (blume (at) tti - c (dot) org)
1158    Date: 2004/05/20 16:00:00 CDT
1159    Tag: blume-20040520-win32
1160    Description:
1161    
1162    Made the win32 version work again.  (Strangely, a misplaced comma had
1163    slipped into win32-process.c which prevented the runtime from being
1164    compiled correctly.)
1165    
1166    Also, included a minor addition to ml-build.bat analogous to what was
1167    done in blume-20040519-ml-build.
1168    
1169    ----------------------------------------------------------------------
1170    Name: Matthias Blume (blume (at) tti - c (dot) org)
1171    Date: 2004/05/19 22:10:00 CDT
1172    Tag: blume-20040519-ml-build
1173    Description:
1174    
1175    Arranged for ml-build to clean up after itself a little bit better.
1176    The script generates a temporary SML source file and compiles it using
1177    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
1178    gets rid of those at the end, so they don't accumulate under .cm.
1179    
1180    This required a minor change to install.sh because the name of the
1181    metadata directory (default: .cm) is actually configurable at
1182    installation time.
1183    
1184    ----------------------------------------------------------------------
1185    Name: Matthias Blume (blume (at) tti - c (dot) org)
1186    Date: 2004/05/18 15:50:00 CDT
1187    Tag: blume-20040518-mkreader
1188    Description:
1189    
1190    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
1191    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
1192    
1193    ----------------------------------------------------------------------
1194    Name: Matthias Blume (blume (at) tti - c (dot) org)
1195    Date: 2004/05/11 14:35:00 CDT
1196    Tag: blume-20040511-win32sock
1197    Description:
1198    
1199    Added previously missing support for many socket-related functions
1200    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
1201    for the voluminous patch!
1202    
1203    (I have not tested this patch under win32 yet.)
1204    
1205    Here is David's e-mail:
1206    
1207    Hi,
1208    
1209    Attached to this email you find a diff against sml/nj 110.45
1210    that will enable socket support under Windows.
1211    
1212    To apply the patch (using unix or cygwin)
1213    1) gunzip runtime.diff.gz
1214    2) "cd" into "src/runtime" in the source tree of a fresh
1215       110.45 installation.
1216    3) patch -p 1 < [your/path/to]runtime.diff
1217    
1218    The code compiles fine but has NOT yet been extensively tested.
1219    I only ran a few tests for basic socket client functionality
1220    (which worked fine).  Especially the functions that use ioctl
1221    are not tested at all and might not work (see below).
1222    
1223    I implemented this since we want to move to a newer version of sml/nj
1224    but need socket support in order to use it.  This is the first time I
1225    even had a look at the sml/nj source,  so please review my changes
1226    before making this part of the distribution!  Here are a few issues
1227    that I think might be better for someone to solve who is more
1228    familiar with the sml/nj source (and socket programming):
1229    
1230    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
1231      exception since I could not figure out what the windows equivalent
1232      of these functions is
1233    
1234    - In sockets-osdep.h there are a some #include statements that are
1235      only used in a few files that include sockets-osdep.h
1236    
1237    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
1238      does not process its return value since I don't know how to
1239      report an error upwards.
1240    
1241    - It would probably be good to have a call to WSACleanup() when
1242      the library is unloaded (if there is such a possibility).
1243      Otherwise I think Windows will take care of this automatically
1244      when the process finishes.
1245    
1246    - I used ioctlsocket() as a replacement for ioctl() but I have
1247      no idea if that is actually the proper replacement on Windows.
1248    
1249    - All these issues are marked in the code by "FIXME" comments.
1250    
1251    We use sml/nj extensively in our products and are quite happy
1252    with it.  I hope this contribution will help you.
1253    
1254    Keep up the good work!
1255    
1256    David
1257    
1258    ----------------------------------------------------------------------
1259    Name: Matthias Blume (blume (at) tti - c (dot) org)
1260    Date: 2004/05/11 14:20:00 CDT
1261    Tag: blume-20040511-installml
1262    Description:
1263    
1264    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
1265    the patch.)
1266    
1267    ----------------------------------------------------------------------
1268    Name: Matthias Blume (blume (at) tti - c (dot) org)
1269    Date: 2004/05/11 14:05:00 CDT
1270    Tag: blume-20040511-nlffi-netbsd
1271    Description:
1272    
1273    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
1274    the patch.)
1275    
1276    ----------------------------------------------------------------------
1277    Name: Matthias Blume (blume (at) tti - c (dot) org)
1278    Date: 2004/05/11 12:05:00 CDT
1279    Tag: blume-20040511-exports
1280    Description:
1281    
1282    As per request by Adam Chlipala <adam@hcoop.net>, extended various
1283    export lists in compiler-related .cm-files.
1284    
1285    ----------------------------------------------------------------------
1286    Name: Matthias Blume (blume (at) tti - c (dot) org)
1287    Date: 2004/05/11 11:35:00 CDT
1288    Tag: blume-20040511-allsource
1289    Description:
1290    
1291    The installer now honors the "src-smlnj" target again, although its meaning
1292    has changed from "all sources required for the compiler" to "all sources
1293    the installer knows about".  In other words, if you enable "src-smlnj"
1294    in the "targets" file, then the installer will pull in sources for
1295    everything.  (Notice that this refers to source code only.  Compiled
1296    code is still only installed for modules that were requested explicitly
1297    or which are required for other modules that were requested explicitly.)
1298    
1299    ----------------------------------------------------------------------
1300    Name: Matthias Blume (blume (at) tti - c (dot) org)
1301    Date: 2004/04/23 17:40:00 CDT
1302    Tag: blume-20040423-ieee-scan
1303    Description:
1304    
1305    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
1306    in the exponent calculation we get INF or ZERO (depending on the mantissa
1307    and the sign of the exponent).
1308    
1309    ----------------------------------------------------------------------
1310    Name: Matthias Blume (blume (at) tti - c (dot) org)
1311    Date: 2004/04/23 10:40:00 CDT
1312    Tag: blume-20040423-ml-build
1313    Description:
1314    
1315    The ml-build script now terminates with a non-0 status when something
1316    goes wrong.
1317    
1318    ----------------------------------------------------------------------
1319    Name: Matthias Blume (blume (at) tti - c (dot) org)
1320    Date: 2004/04/22 16:35:00 CDT
1321    Tag: blume-20040422-Option
1322    Description:
1323    
1324    Made exception Option to be the same as exception Option.Option
1325    (as it should be).
1326    
1327    ----------------------------------------------------------------------
1328    Name: Allen Leung (leunga (at) reservoir (dot) com)
1329    Date: 2004/03/19 14:40:00 EST
1330    Tag: leunga-20040319-cygwin-nlffi
1331    Description:
1332    
1333    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
1334    of SML/NJ.  The problem is that
1335    
1336       lib = dlopen(NULL, ...)
1337       f   = dlsym(lib, "malloc");
1338    
1339    does not work on Windows unless we explicitly export symbols
1340    such as 'malloc' during linking.  We fixed this by explicitly
1341    exporting the required symbols with the magic gcc incantation:
1342    
1343        -Wl,--export-all cygwin.def
1344    
1345    where cygwin.def is a file containing all the symbols that
1346    we wish to export.
1347    
1348    I suspect this is a Windows problem and we'll have to
1349    do the same (somehow with windows compilers) when
1350    we build the native win32 version with the system
1351    calls LoadLibrary/GetProcAddress.
1352    
1353    ----------------------------------------------------------------------
1354    Name: Matthias Blume (blume (at) tti - c (dot) org)
1355    Date: 2004/03/04 16:35:00 CST
1356    Tag: blume-20040304-intinf-fmt
1357    Description:
1358    
1359    Fixed problem with IntInf.fmt (sign would show up on the right instead
1360    of on the left for BIN, OCT, and HEX).
1361    
1362    ----------------------------------------------------------------------
1363    Name: Matthias Blume (blume (at) tti - c (dot) org)
1364    Date: 2004/03/04 11:25:00 CST
1365    Tag: blume-20040304-symlinks
1366    Description:
1367    
1368    Fixed problem with installer script (unix only) where bin/ml-yacc and
1369    friends pointed (via symlinks) to absolute locations instead of just
1370    .run-sml.  This was reported by Vesa A Norrman.
1371    
1372    ----------------------------------------------------------------------
1373    Name: Matthias Blume (blume (at) tti - c (dot) org)
1374    Date: 2004/02/13 14:50:00 CST
1375    Tag: Release_110_45
1376    Description:
1377    
1378    New working version (110.45). New bootfiles.
1379    
1380    ----------------------------------------------------------------------
1381    Name: Matthias Blume (blume (at) tti - c (dot) org)
1382    Date: 2004/01/26 15:15:15 CST
1383    Tag: blume-20040126-toplevel
1384    Description:
1385    
1386    Improved handling of exceptions at the interactive toplevel.
1387    
1388    ----------------------------------------------------------------------
1389    Name: Matthias Blume (blume (at) tti - c (dot) org)
1390    Date: 2004/01/26 11:25:00
1391    Tag: blume-20040126-app
1392    Description:
1393    
1394    Type of top-level "app" corrected.
1395    Added code for setting vp_limitPtrMask to Win32-specific runtime.
1396    
1397    ----------------------------------------------------------------------
1398    Name: Matthias Blume (blume (at) tti - c (dot) org)
1399    Date: 2003/11/18 17:10 CST
1400    Tag: blume-20031118-basis-fiddle
1401    Description:
1402    
1403    - changed Timer interface to what might become the spec
1404    - POSIX_FLAGS -> BIT_FLAGS according to spec
1405    - some other minor discrepancies wrt. spec eliminated
1406    
1407    ----------------------------------------------------------------------
1408    Name: Matthias Blume (blume (at) tti - c (dot) org)
1409    Date: 2003/11/06 12:00:00 CST
1410    Tag: Release_110_44
1411    Description:
1412    
1413    New working version (110.44). New bootfiles.
1414    
1415    ----------------------------------------------------------------------
1416    Name: Matthias Blume (blume (at) tti - c (dot) org)
1417    Date: 2003/11/04 11:50:00 CST
1418    Tag: blume-20031104-move-libraries
1419    Description:
1420    
1421    Eliminated the "dont_move_libraries" directive in config/targets.
1422    (The mechanism was broken and could not be fixed easily.  Moreover,
1423    there does not seem to be any reason not to move all libraries into
1424    lib during installation.  I originally implemented this directive as a
1425    backward-compatibility feature when I first introduced the new CM.
1426    Now that things have been stable for a long time and going back to the
1427    old CM is not an option, there is no reason to keep it around.)
1428    
1429    ----------------------------------------------------------------------
1430    Name: Matthias Blume (blume (at) tti - c (dot) org)
1431    Date: 2003/11/03 16:00:00 CST
1432    Tag: blume-20031103-installdir
1433    Description:
1434    
1435    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
1436    Richards for pointing out the problem and providing the solution.)
1437    
1438    ----------------------------------------------------------------------
1439    Name: Matthias Blume (blume (at) tti - c (dot) org)
1440    Date: 2003/10/01 17:05:00 CDT
1441    Tag: blume-20031001-lal-mlrisc
1442    Description:
1443    
1444    MLRISC bug fix from Lal.
1445    
1446    ----------------------------------------------------------------------
1447    Name: Matthias Blume (blume (at) tti - c (dot) org)
1448    Date: 2003/09/30 16:10:00 CDT
1449    Tag: blume-20030930-primio-bat
1450    Description:
1451    
1452    1. Added openVector, nullRd, and nullWr to PRIM_IO.
1453    2. Improved .bat files (for Win32 port) to make things work under Win95.
1454       (thanks to Aaron S. Hawley for this one)
1455    
1456    ----------------------------------------------------------------------
1457    Name: Matthias Blume (blume (at) tti - c (dot) org)
1458    Date: 2003/09/26 16:05:00 CDT
1459    Tag: blume-20030926-wrappriv
1460    Description:
1461    
1462    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
1463    
1464    ----------------------------------------------------------------------
1465    Name: Matthias Blume (blume (at) tti - c (dot) org)
1466    Date: 2003/09/26 15:00:00 CDT
1467    Tag: blume-20030926-110_43_3
1468    Description:
1469    
1470    - additional cleanup
1471    - version number bump, NEW BOOTFILES
1472    
1473    ----------------------------------------------------------------------
1474    Name: Matthias Blume (blume (at) tti - c (dot) org)
1475    Date: 2003/09/26 12:00:00 CDT
1476    Tag: blume-20030926-ppautoload
1477    Description:
1478    
1479    I modified the read-eval-print loop so that the autoloader gets
1480    invoked whenever the prettyprinter tries to look up a symbol that
1481    is not currently defined in the toplevel environment but which
1482    appears in CM's autoload registry.  As a result, we see far fewer of
1483    those ?.Foo.Bar.xxx names in the prettyprinter's output.
1484    
1485    In addition to this I tried to clean up some pieces of the Basis
1486    implementation (e.g., Socket, Word8Array) in order to prevent other
1487    instances of these ?.Foo.Bar.xxx names from being printed.
1488    
1489    The mechanism that picks names for types still needs some work, though.
1490    (Right now it seems that if there is a type A.t which is defined to
1491    be B.u, but B is unavailable at toplevel, then A.t gets printed as
1492    "?.B.u" although the perhaps more sensible solution would be to use
1493    "A.t" in this case.  In other words, the prettyprinter should follow
1494    a chain of DEFtycs not farther than there are corresponding toplevel
1495    names in the current environment.)
1496    
1497    ----------------------------------------------------------------------
1498    Name: Matthias Blume (blume (at) tti - c (dot) org)
1499    Date: 2003/09/24 16:31:00 CDT
1500    Tag: blume-20030924-installer
1501    Description:
1502    
1503    Another installer tweak:  All the ML code for the installer is now
1504    compiled during CMB.make and put into a little library called
1505    $smlnj/installer.cm.  The installation then simply invokes
1506    
1507       sml -m $smlnj/installer.cm
1508    
1509    and everything happens automagically.
1510    
1511    Win32:  ML code senses value of environment variable SMLNJ_HOME.
1512    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
1513            and BINDIR.
1514    
1515    The new scheme guarantees that the ML code responsible for the installation
1516    is in sync with the APIs of the main system.  Also, the installer is
1517    somewhat faster because the installer script is precompiled.
1518    
1519    ----------------------------------------------------------------------
1520    Name: Matthias Blume (blume (at) tti - c (dot) org)
1521    Date: 2003/09/24 15:35:00 CDT
1522    Tag: blume-20030924-synsock
1523    Description:
1524    
1525    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
1526    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
1527    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
1528    implementations of non-blocking operations from CML's Socket
1529    structure.
1530    
1531    ----------------------------------------------------------------------
1532    Name: Matthias Blume (blume (at) tti - c (dot) org)
1533    Date: 2003/09/24 15:10:05 CDT
1534    Tag: blume-20030924-sockets
1535    Description:
1536    
1537    1. Fixed SOCKET API and implementation to match Basis spec.
1538       This required changing the internal representation of sockets to one
1539       that remembers (for each socket file descriptor) whether it is currently
1540       blocking or non-blocking.  This state is maintained lazily (i.e., a system
1541       call is made only if the state actually needs to change).
1542    
1543    2. OS-specific details of sockets were moved into separate files, thus
1544       making it possible to unify the bulk of the socket implementations
1545       between Unix and Win32.
1546    
1547    3. CML's socket API changed accordingly.
1548       (Note that we need to remove non-blocking functions from this API
1549       since they are redundant in the case of CML!)
1550    
1551    4. CML's socket implementation now makes use of non-blocking functions
1552       provided by Basis, thus removing all OS-dependent code from this part
1553       of CML.
1554    
1555    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
1556    
1557    ----------------------------------------------------------------------
1558    Name: Matthias Blume (blume (at) tti - c (dot) org)
1559    Date: 2003/09/22 12:10:00 CDT
1560    Tag: blume-20030922-110_43_2
1561    Description:
1562    
1563    Made a new interim version and bootfiles for developer's bootstrapping
1564    convenience.
1565    
1566       110.43.2 -- NEW BOOTFILES
1567    
1568    ----------------------------------------------------------------------
1569    Name: Matthias Blume (blume (at) tti - c (dot) org)
1570    Date: 2003/09/19 15:55:00 CDT
1571    Tag: blume-20030919-cmdir
1572    Description:
1573    
1574    1. new-install.sh -> install.sh
1575    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
1576    3. tweaked installer so that another name instead of .cm can be chosen
1577       at install time (by setting the CM_DIR_ARC environment variable
1578       during installation); once installation is complete, the name is
1579       fixed
1580    
1581    ----------------------------------------------------------------------
1582    Name: Matthias Blume (blume (at) tti - c (dot) org)
1583    Date: 2003/09/18 16:00:00 CDT
1584    Tag: blume-20030918-110_43_1
1585    Description:
1586    
1587    Made a new interim version and bootfiles for developer's bootstrapping
1588    convenience.
1589    
1590       110.43.1 -- NEW BOOTFILES
1591    
1592    ----------------------------------------------------------------------
1593    Name: Matthias Blume (blume (at) tti - c (dot) org)
1594    Date: 2003/09/18 15:20:00 CDT
1595    Tag: blume-20030918-misc
1596    Description:
1597    
1598    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
1599       this seems to be controversial at the moment) and used those in
1600       Posix.ProcEnv.times.
1601    
1602    2. Added Time.{from,to}Nanoseconds to Time.
1603    
1604    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
1605       For example, fromLargeInt never needs to look at more than 3 "big
1606       digits" to get its 53 bits of precision.
1607    
1608    ----------------------------------------------------------------------
1609    Name: Matthias Blume (blume (at) tti - c (dot) org)
1610    Date: 2003/09/17 16:30:00 CDT
1611    Tag: blume-20030917-real32-slices
1612    Description:
1613    
1614    Added an entry to the primitive environment
1615    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
1616    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
1617    
1618    Removed some of the "magic" constants in real64.sml and replaced them
1619    with code that generates these values from their corresponding
1620    integer counterparts.
1621    
1622    Made all(?) the slice-related changes to the Basis and made everything
1623    compile again...
1624    
1625    ----------------------------------------------------------------------
1626    Name: Matthias Blume (blume (at) tti - c (dot) org)
1627    Date: 2003/09/15 17:45:00 CDT
1628    Tag: blume-20030915-rbase
1629    Description:
1630    
1631    Fixed bug in Real.fromLargeInt.
1632    
1633    ----------------------------------------------------------------------
1634    Name: Matthias Blume (blume (at) tti - c (dot) org)
1635    Date: 2003/09/13 18:11:00 CDT
1636    Tag: blume-20030913-libinstall
1637    Description:
1638    
1639    Minor bugfix in config/libinstall (set anchor with path to
1640    standalone tool after installing it, otherwise libraries that
1641    need ml-lex or ml-yacc won't compile the first time the installer
1642    runs).
1643    
1644    ----------------------------------------------------------------------
1645    Name: Matthias Blume (blume (at) tti - c (dot) org)
1646    Date: 2003/09/12 11:45:00 CDT
1647    Tag: blume-20030912-various
1648    Description:
1649    
1650     - fixed bug in Real.toLargeInt
1651     - fixed bug in Posix.ProcEnv.times
1652     - changed inputLine functions to return an option
1653     - minor installer improvements / bugfixes
1654     - changed default @SMLalloc parameter for x86/celeron to 64k
1655    
1656    ----------------------------------------------------------------------
1657    Name: Matthias Blume (blume (at) tti - c (dot) org)
1658    Date: 2003/09/09 22:00:00 CDT
1659    Tag: Release_110_43
1660    Description:
1661    
1662        New working release 110.43.  New bootfiles.
1663    
1664    ----------------------------------------------------------------------
1665    Name: Matthias Blume (blume (at) tti - c (dot) org)
1666    Date: 2003/09/09 19:20:00 CDT
1667    Tag: blume-20030909-installer
1668    Description:
1669    
1670    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
1671    Modified config/install.bat to take advantage of it.  Also modified
1672    config/install.sh (and called it config/new-install.sh) to take advantage
1673    of it on Unix systems.  (The SML code is (supposed to be) platform-
1674    independent.)
1675    
1676    The installer can now install everything under Win32
1677    as well as under *nix as long as it compiles.
1678    
1679    Other changes:
1680    
1681      - made CML compile again under Win32
1682      - made eXene compile under Win32 (by providing a fake structure UnixSock
1683        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
1684      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
1685        same as type int;  under Win32 it isn't
1686      - fixed some slice-related problems in the win32-specific parts of CML
1687      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
1688        (under Win32, the volume name is case-insensitive, and the
1689        OS.Path code compares volume names for equality)
1690    
1691    ----------------------------------------------------------------------
1692    Name: Matthias Blume (blume (at) tti - c (dot) org)
1693    Date: 2003/09/08 11:55:00 CDT
1694    Tag: blume-20030908-fullpath
1695    Description:
1696    
1697    Made Win32 version of OS.FileSys.fullPath return current directory
1698    when given an empty string.  This is what the spec says, and incidentally,
1699    CM depends on it.  (CM otherwise goes into an infinite loop in certain
1700    cases when presented with the name of a non-existing .cm file.)
1701    
1702    ----------------------------------------------------------------------
1703    Name: Matthias Blume (blume (at) tti - c (dot) org)
1704    Date: 2003/09/04 16:30:00 CDT
1705    Tag: blume-20030905-slices-etc
1706    Description:
1707    
1708      1. Changed interface to vectors and arrays in Basis to match
1709         (draft) Basis spec.
1710      2. Added signatures and implementations of slices according to
1711         Basis spec.
1712      3. Edited source code throughout the system to make it compile again
1713         under 1. and 2.  (In some cases code had to be added to have it
1714         match the new signatures.)
1715      4. MLRISC should be backward-compatible: the copies of the originals
1716         of files that needed to change under 3. were retained, the .cm files
1717         check the compiler version number and use old versions when
1718         appropriate.
1719      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
1720         dirstream -> string option (in accordance with Basis spec).
1721      6. When generating code that counts lines, ml-lex used function
1722         CharVector.foldli, taking advantage of its old interface.
1723         This has been replaced with the corresponding code from
1724         CharVectorSlice.  (html-lex must be re-lexed!)
1725      7. BitArray in smlnj-lib/Util has been extended/modified to match the
1726         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
1727      8. Removed temporary additions (fromInternal, toInternal) from the
1728         (now obsolete) IntInf in smlnj-lib/Util.
1729      9. Cleaned up structure Byte.
1730     10. Added localOffset, scan, and fromString to Date (according to spec).
1731         Cleaned/corrected implementation of Date.
1732         (Still need to check for correctness; implement better canonicalizeDate.)
1733     11. Added "scan" to signature IEEE_REAL.
1734     12. Some improvements to IntInf [in particular: efficiency-hack for
1735         mod and rem when second operand is 2 (for parity checks).]
1736     13. Changed representation of type Time.time, using a single IntInf.int
1737         value counting microseconds.  This considerably simplified the
1738         implementation of structure Time.  We now support negative time
1739         values; scan and fromString handle signs.
1740     14. Functor PrimIO now takes two additional arguments (VectorSlice and
1741         ArraySlice).
1742    
1743    ----------------------------------------------------------------------
1744    Name: Matthias Blume (blume (at) tti - c (dot) org)
1745    Date: 2003/08/28 17:00:00 CDT
1746    Tag: blume-20030828-intinf
1747    Description:
1748    
1749    This is a major update which comes with a version number bump
1750    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
1751    and an implementation of IntInf in the Basis.
1752    
1753    There are a fairly large number of related changes and updates throughout
1754    the system:
1755    
1756    Basis:
1757            - Implemented IntInf.
1758            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
1759            - Added some missing Real64 operations, most notably Real.toLargeInt.
1760            - Added FixedInt as a synonym for Int32.
1761    
1762    compiler:
1763            * Added support for a built-in intinf type.
1764              - literals
1765              - pattern matching
1766              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
1767              - overloading on literals and operations
1768    
1769            This required adding a primitive type intinf, some additional
1770            primops, and implementations for several non-trivial intinf
1771            operations in Core.  (The intinf type is completely abstract
1772            to the compiler; all operations get delegated back to the Core.)
1773    
1774            * Intinf equality is handled by polyequal.  However, the compiler
1775            does not print its usual warning in this case (since polyequal
1776            is the right thing to do there).
1777    
1778            * Improved the organization of structure InlineT.
1779    
1780            * A word about conversion primops:
1781            If conversions involving intinf do not cancel out during
1782            CPS contract, then the compiler must insert calls to Core functions.
1783            Since all core access must be resolved already during the FLINT
1784            translate phase, it would be too late a the time of CPS contract
1785            to add new Core calls.  For this reason, conversion primops
1786            for intinf carry two arguments:  1. the numeric argument that
1787            they are supposed to convert, and 2. the Core function that
1788            can help with this conversion if necessary.  If CPS contract
1789            eliminates a primop, then the associated Core function becomes
1790            dead and goes away.  Intinf conversion primops that do not get
1791            eliminated by CPS contract get rewritten into calls of their
1792            core functions by a separate, new phase.
1793    
1794    interactive system:
1795            - Control.Print.intinfDepth controls max length of intinf constants
1796            being printed. (Analogous to Control.Print.stringDepth.)
1797            - Cleanup in printutil and pputil: got rid of unused stuff and
1798            duplicates; replaced some of the code with code that makes better
1799            use of library functionality.
1800    
1801    CM:
1802            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
1803            are no longer silent.
1804    
1805    CKIT:
1806            Fixed mismatched uses of Int32 and LargeInt.  I always decided
1807            in favor of LargeInt -- which is now the same as IntInf.
1808            CKIT-knowledgable people should check whether this is what's
1809            intended and otherwise change things back to using Int32 or
1810            FixedInt.
1811    
1812    Throughout the code:
1813            Started using IntInf.int literals and built-in operations
1814            (e.g., comparison with 0) where this seems appropriate.
1815    
1816    
1817    ----------------------------------------------------------------------
1818    Name: Dave MacQueen (dbm@cs.uchicago.edu)
1819    Date: 2003/08/13 11:36:00 CDT
1820    Tag: dbm-20030813-mcz-merge1
1821    Description:
1822    
1823    Merging changes from the mcz-branch development branch into trunk.
1824    These changes involve replacement of the emulated old prettyprinter
1825    interface with direct use of the SML/NJ Lib PP library, and fixing
1826    of a couple of bugs (895, 1186) relating to error messages.  A new
1827    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
1828    has been added.
1829    
1830    ----------------------------------------------------------------------
1831    Name: Matthias Blume (blume (at) tti - c (dot) org)
1832    Date: 2003/08/11 15:45:00 CDT
1833    Tag: blume-20030811-windows
1834    Description:
1835    
1836    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
1837    
1838        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
1839    
1840    This patch restores SML/NJ's ability to run under win32.  There are a
1841    number of changes, including fixes for several bugs that had gone
1842    unnoticed until now:
1843    
1844      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
1845        trying to run the win32 version from within cygwin.)
1846    
1847      - There are a number of simple .bat scripts that substitute for their
1848        corresponding Unix shell-scripts.  (See below.)
1849    
1850      - The internals of ml-build have been modified slightly.  The main
1851        difference is that instead of calling ".link-sml" (or link-sml.bat)
1852        using OS.Process.system, the ML process delegates this task back
1853        to the script.  Otherwise problems arise in mixed environments such
1854        as Cygwin where scripts look and work like Unix scripts, but
1855        where OS.Process.system cannot run them.
1856    
1857      - In CM, the srcpath pickler used native pathname syntax -- which
1858        is incorrect in the case of cross-compilation.  The new pickle format
1859        is independent of platform-specific naming conventions.
1860    
1861      - Path configuration files (such as lib/pathconfig) can now choose
1862        between native and standard syntax.  Placing a line of the form
1863    
1864            standard!
1865    
1866        into the file causes all subsequent paths to be interpreted using
1867        CM standard pathname syntax (= Unix conventions); a line
1868    
1869            native!
1870    
1871        switches back to native style.  This was needed so that
1872        path config files can be written portably, see src/system/pathconfig.
1873    
1874      - Runtime system:
1875    
1876          - win32-filesys.c:  get_file_time and set_file_time now
1877            access modification time, not creation time.
1878    
1879          - I/O code made aware of new array representation.
1880    
1881          - Bug fixes in X86.prim.masm.
1882    
1883       - src/system/makeml made aware of win32. (For use under cygwin
1884            and other Unix-environments for windows.)
1885    
1886       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
1887         which caused BinIO.inputAll to fail consistently.
1888    
1889    .bat scripts:
1890    
1891       Windows .bat scripts assume that SMLNJ_HOME is defined.
1892    
1893       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
1894         applications (sml, ml-yacc, ml-lex).
1895       - ml-build.bat: analogous to ml-build.
1896       - config\install.bat:  Analogous to config/install.sh.  This requires
1897         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
1898         (nmake etc. must be on the path, and vcvars32 must have been run.)
1899         Moreover, sources for ml-lex and ml-yacc need to exist under src,
1900         and the bootfile hierarchy must have been unpacked under
1901         sml.boot.x86-win32.
1902         The script is very primitive and does a poor job at error checking.
1903         It only installs the base system, ml-lex, and ml-yacc.  No other
1904         libraries are being installed (i.e., you get only those that
1905         are part of the compiler.)
1906       - link-sml.bat:  analogous to .link-sml, but not currently used
1907    
1908    Unrelated bug fixes:
1909    
1910      - ml-nlffigen now exports structures ST_* corresponding to incomplete
1911        types.
1912      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
1913        otherwise.)
1914    
1915    ----------------------------------------------------------------------
1916    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
1917    Date: 2003/06/17
1918    Tag: macqueen-20030617-bug895
1919    Description:
1920    
1921    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
1922    Tag will be used for new development branch (mcz-branch) for
1923    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
1924    
1925    ----------------------------------------------------------------------
1926    Name: Matthias Blume (blume (at) tti - c (dot) org)
1927    Date: 2003/05/27 16:55:00 CDT
1928    Tag: blume-20030527-polyeq
1929    Description:
1930    
1931    Tried to eliminated most cases of polymorphic equality.
1932    
1933    ----------------------------------------------------------------------
1934    Name: Matthias Blume (blume (at) tti - c (dot) org)
1935    Date: 2003/05/21 17:45:00 CDT
1936    Tag: blume-20030517-complete
1937    Description:
1938    
1939    Two changes:
1940    
1941      1. Added a flag for controlling whether non-exhaustive bindings will
1942         be treated as errors (default is false).
1943      2. Cleaned up the *entire* source tree so that CMB.make goes through
1944         without a single non-exhaustive match- or bind warning.
1945    
1946    ----------------------------------------------------------------------
1947    Name: Matthias Blume (blume (at) tti - c (dot) org)
1948    Date: 2003/05/17 10:20:00 CDT
1949    Tag: blume-20030517-absyn
1950    Description:
1951    
1952    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
1953    
1954       This mainly affects the quality of error messages.  However, some
1955       of the code is now more straightforward than before. (Treatment of
1956       the above four constructs in translate.sml is much simpler than
1957       the "macro-expansion" that was going on before.  Plus, the mach-
1958       compiler no longer gets invoked just to be able to compile an
1959       if-expression.)
1960    
1961    2. The ErrorMsg.Error exception is now caught and absorbed by the
1962       interactive loop.
1963    
1964    ----------------------------------------------------------------------
1965    Name: Allen Leung
1966    Date: 2003/05/16 13:05:00 CDT
1967    Tag: leunga-20030516-cygwin-runtime
1968    Description:
1969    
1970        Ported the runtime system to cygwin, which uses the unix
1971    x86-unix bin files.  Missing/buggy features:
1972    
1973       o getnetbyname, getnetbyaddr: these functions seem to be missing in
1974         the Cygwin library.
1975       o Ctrl-C handling may be flaky.
1976       o Windows system calls and Windows I/O are not supported.
1977    
1978       A new set of binfiles is located at:
1979    
1980         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
1981    
1982       This is only needed for bootstrapping the cygwin version of smlnj.
1983       Other x86 versions can use the existing binfiles.
1984    
1985    ----------------------------------------------------------------------
1986    Name: Matthias Blume
1987    Date: 2003/04/08 15:42:00 CDT
1988    Tag: blume-20030408-listpair
1989    Description:
1990    
1991    1. Added a target 'mlrisc' to installer.
1992    
1993    2. Added missing elements to structure ListPair.
1994    
1995    ----------------------------------------------------------------------
1996  Name: Allen Leung  Name: Allen Leung
1997  Date: 2003/01/07 10:40:00 EST  Date: 2003/01/07 10:40:00 EST
1998  Tag: leunga-20030107-int-rem  Tag: leunga-20030107-int-rem

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

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