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

Legend:
Removed from v.1190  
changed lines
  Added in v.1746

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