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

Legend:
Removed from v.1222  
changed lines
  Added in v.1758

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