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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

sml/trunk/HISTORY revision 1294, Thu Dec 12 21:22:48 2002 UTC sml/trunk/NOTES/HISTORY revision 2603, Wed May 23 21:50:42 2007 UTC
# Line 1  Line 1 
1  This is the HISTORY file for the Yale SML/NJ CVS repository.  This is the HISTORY file for the SML/NJ repository.
2    
3  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
4  The entries in this file will be used when creating the README  The entries in this file will be used when creating the README
# Line 7  Line 7 
7    
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  
11    Name: Your Name (web page or e-mail)
12    Date: yyyy/mm/dd hh:mm:ss
13    Tag: cvs-tag-for-this-change
14    Description:
15    
16    ----------------------------------------------------------------------
17    Name: David MacQueen (dbm@cs.uchicago.edu)
18    Date: 2007/5/23 17:23:00 CDT
19    Revision: 2603
20    Description:
21    
22    2nd merge of base from primop-branch-3 into the trunk.
23    Additional bug fixes included:
24     Date.scan and Date.fromString fixed;
25     Overloading resolution fixed and some type printing problems corrected.
26    
27    ----------------------------------------------------------------------
28    Name: Matthias Blume (http://www.tti-c.org/blume/)
29    Date: 2007/05/23 09:50:00 CDT
30    Description:
31    
32    Changed the installation mechanism for CM tool plugins.  These are
33    just libaries and now get installed like ordinary libaries.
34    
35    There are now a number of new installation targets that give some
36    fine-grain control over what classes and suffixes are known, and what
37    they will map to.
38    See config/targets for details.
39    
40    The code that caused plugin installation as part of running a
41    tool's "build" script has been removed.  (The build script is for
42    building, not for installing.)
43    
44    ----------------------------------------------------------------------
45    Name: Matthias Blume (http://www.tti-c.org/blume/)
46    Date: 2007/05/22 11:50:00 CDT
47    Description:
48    
49    Added a boolean control named cm.tolerate-tool-failures (env. variable
50    name: CM_TOLERATE_TOOL_FAILURES).  The default is false and makes
51    CM fail if a shell tool reports a non-success exit status.  If
52    the control is set to true, then CM will press on after tool failures
53    in the event that the target files exist (even though they are
54    considered outdated).  Turning the control to true can be useful for
55    bootstrapping.
56    
57    ----------------------------------------------------------------------
58    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
59    Date: 2007/05/19
60    Description:
61    
62    Merge of ml-lpt revisions for 110.64.
63    
64    The name of several ml-lpt-lib modules has changed:
65      Repair        => AntlrRepair
66      StreamPos     => AntlrStreamPos
67      ErrHandlerFn  => AntlrErrHandler
68      EBNF          => AntlrEBNF
69    
70    The ml-antlr specification format has changed: declarations such as
71    %tokens and nonterminal definitions can occur *multiple* times in the
72    same specification.  The semantics are such that each new declaration
73    extends the previous ones.  This does not apply to %start or %name,
74    of course.
75    
76    Importing a grammar via %import now includes *all* declarations in from
77    the imported grammar, except for %name, %entry, and %start.  Tokens
78    and nonterminals can be dropped using the new %dropping clause of the
79    %import directive; the separate %drop and %extend have been removed.
80    
81    We now allow optional type annotations on nonterminals, using the %nonterms
82    directive as in ml-yacc.
83    
84    The refcell construct is now implemented using SML's regular reference
85    cells, so the :== and !! notation has been deprecated.
86    
87    The ml-antlr tool now does much more checking of specifications, and
88    its error messages have been greatly improved.  Error repair for
89    generated parsers has been completely rewritten, and is now both
90    much faster and more accurate.
91    
92    ml-ulex is now more lenient with escape codes (non-SML-standard
93    escape codes are now interpreted literally, so e.g. \| denotes "|").
94    Also, character classes may now include a "-" character at the beginning
95    as is standard in most other regexp tools.
96    
97    All of these changes are documented in the user guide, which has
98    been updated and improved with this merge.
99    
100    ----------------------------------------------------------------------
101    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
102    Date: 2007/05/03
103    Revision: r2492
104    Description:
105    
106    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
107    Significant changes in FLINT and the front end, mostly having to do
108    with a reorganized system for handling primops.  Various bug fixes
109    and improvements in printing signatures.
110    
111    ----------------------------------------------------------------------
112    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
113    Date: 2007/05/02
114    Description:
115    
116    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
117    The ml-antlr specification format has changed: declarations such as
118    %tokens and nonterminal definitions can occur *multiple* times in the
119    same specification.  The semantics are such that each new declaration
120    extends the previous ones.  Grammar extension constructs have also
121    changed.  We now allow type annotations on nonterminals.  Finally,
122    the refcell construct is now implemented using SML's regular reference
123    cells, so the :== and !! notation has been deprecated.  All of these
124    changes will appear in the 110.64 user guide for ml-lpt.
125    
126    The ml-antlr tool now does much more checking of specifications, and
127    its error messages have been greatly improved.  There has also been
128    some work on the error repair process for generated parsers, but this
129    will be further improved in 110.64.
130    
131    ----------------------------------------------------------------------
132    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
133    Date: 2007/05/03
134    Revision: r2492
135    Description:
136    
137    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
138    Significant changes in FLINT and the front end, mostly having to do
139    with a reorganized system for handling primops.  Various bug fixes
140    and improvements in printing signatures.
141    
142    ----------------------------------------------------------------------
143    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
144    Date: 2007/05/02
145    Description:
146    
147    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
148    The ml-antlr specification format has changed: declarations such as
149    %tokens and nonterminal definitions can occur *multiple* times in the
150    same specification.  The semantics are such that each new declaration
151    extends the previous ones.  Grammar extension constructs have also
152    changed.  We now allow type annotations on nonterminals.  Finally,
153    the refcell construct is now implemented using SML's regular reference
154    cells, so the :== and !! notation has been deprecated.  All of these
155    changes will appear in the 110.64 user guide for ml-lpt.
156    
157    The ml-antlr tool now does much more checking of specifications, and
158    its error messages have been greatly improved.  There has also been
159    some work on the error repair process for generated parsers, but this
160    will be further improved in 110.64.
161    
162    ----------------------------------------------------------------------
163    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
164    Date: 2007/04/24
165    Description:
166    
167    More Basis fixes: The Char.fromString (etc.) functions did not handle
168    the "\uxxxx" escape sequence.  There is still an outstanding bug with
169    String.fromString the tail is a format escape.  I added a comment to
170    this effect in Basis/Implementation/string.sml.
171    Thanks to Andreas Rossberg.
172    
173    ----------------------------------------------------------------------
174    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
175    Date: 2007/04/24
176    Description:
177    
178    Added next function to Fifo and Queue modules in the SML/NJ Library.
179    
180    ----------------------------------------------------------------------
181    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
182    Date: 2007/04/23
183    Description:
184    
185    More Basis fixes: Time.fmt dropped the leading "~" for negative time
186    values that had no whole part.
187    
188    ----------------------------------------------------------------------
189    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
190    Date: 2007/04/23
191    Description:
192    
193    More Basis fixes: the OS.Path module did not include the InvalidArc
194    exception and did not do sufficient argument checking.
195    Thanks to Stephen Weeks and Adam Chilpala.
196    
197    ----------------------------------------------------------------------
198    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
199    Date: 2007/04/16
200    Description:
201    
202    Fixed an unbound functor bug in the AMD64 CM file.
203    
204    ----------------------------------------------------------------------
205    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
206    Date: 2007/04/12
207    Description:
208    
209    Substantially changed the signature and implementation of AMD64
210    SVID.  It now looks similar to the ia32 SVID, yet uses staged
211    allocation.
212    
213    ----------------------------------------------------------------------
214    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
215    Date: 2007/04/07
216    Description:
217    
218    More Basis fixes: the WORD signature was missing {to,from}Large.
219    Thanks to Andreas Rossberg.
220    
221    ----------------------------------------------------------------------
222    Name: Matthias Blume (http://www.tti-c.org/blume/)
223    Date: 2007/03/22 16:07:00 CDT
224    Tag: release-110.63
225    Description:
226    
227    Bumped version number to 110.63.
228    
229       !!!NEW BOOTFILES!!!
230    
231    ----------------------------------------------------------------------
232    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
233    Date: 2007/03/19
234    Description:
235    
236    Fixed bogus operand sizes in AMD64 instruction spilling.
237    
238    ----------------------------------------------------------------------
239    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
240    Date: 2007/03/19
241    Description:
242    
243    Fixed a number of inconsistencies between the Posix.TTY structure
244    and the Basis specification.  Thanks to Adam Chilpala.
245    
246    ----------------------------------------------------------------------
247    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
248    Date: 2007/02/26
249    Description:
250    
251    Added preliminary support in MLRISC for Staged Allocation, a technique
252    for specifying calling conventions (see
253    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
254    Initially, we plan to use this code to generate C calls for the AMD64.
255    
256    The staged allocation code base resides in MLRISC/staged-allocation,
257    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
258    
259    ----------------------------------------------------------------------
260    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
261    Date: 2007/02/20
262    Description:
263    
264      Bug fix: when SaveCState was called with two values to save, a subsequent
265      GC could cause the RestoreCState to fail because the saved state had been
266      promoted to tagless pair.
267    
268    ----------------------------------------------------------------------
269    Name: Allen Leung (leunga (at) reservoir (dot) com)
270    Date: 2007/02/20 19:08:00 EST
271    Description:
272    
273        Bug triggered by:
274    
275        val a1 = Word8Array.array(a1, 0w0);
276        val _  = Word8Array.update(a1, 0, 0w128);
277    
278        x86MCEmitter crashed when the immediate operand to MOVB was outside
279    of the range -128 ... 127.  I've changed the code so that the range
280    check is disabled.   Only the low order 8 bits of the immediate operand
281    are now significant.
282    
283    
284    ----------------------------------------------------------------------
285    Name: Matthias Blume (http://www.tti-c.org/blume/)
286    Date: 2007/02/15 09:20:00 CST
287    Description:
288    
289    Eliminated any mention of lexgen.  (Lexgen was an early precursor
290    to ml-ulex.)
291    
292    You should update your admin directory, so the shell scripts for
293    maintaining your local copy of the repository reflect this change.
294    
295    ----------------------------------------------------------------------
296    Name: Matthias Blume (http://www.tti-c.org/blume/)
297    Date: 2007/02/14 15:45:00 CST
298    Description:
299    
300    Fixed bug in CM's parallel make facility that failed to have
301    the master re-link modules after letting slaves compile them.
302    
303    ----------------------------------------------------------------------
304    Name: Matthias Blume (http://www.tti-c.org/blume/)
305    Date: 2007/02/12 15:10:00 CST
306    Description:
307    
308    Fixed typo in ml-build script that prevented library anchors
309    from being registered.
310    
311    ----------------------------------------------------------------------
312    Name: Matthias Blume (http://www.tti-c.org/blume/)
313    Date: 2007/02/02 15:20:00 CST
314    Tag: release-110.62
315    Description:
316    
317    New working release (110.62).  NEW BOOTFILES!
318    
319    ----------------------------------------------------------------------
320    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
321    Date: 2007/01/31
322    Description:
323    
324    Brought ml-lpt manual up-to-date with the code.  Many minor
325    improvements to the tools, and a few minor bugfixes.  Prepared
326    ml-lpt-lib for integration with new UTF8 structure.  Changed
327    the interface for creating streams in ml-ulex (we now support
328    stream creation from several kinds of sources).  Overall, the
329    tools are now quite stable, and their interfaces are unlikely to
330    change in a way that would break compatibility.  More work,
331    however, is needed in the documentation.
332    
333    ----------------------------------------------------------------------
334    Name: Matthias Blume (http://www.tti-c.org/blume/)
335    Date: 2007/02/01 10:05:00 CST
336    Description:
337    
338    Implemented library installer.  Moved CM plugin code for
339    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
340    their respective trees.  Implemented CM plugin for ml-ulex
341    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
342    and ml-antlr.
343    
344    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
345    CM tools.  (It turns out to be too messy to do otherwise because
346    there is too much code that during installation relies on the presence
347    of these tools -- resulting in a tricky ordering problem.)
348    
349    ----------------------------------------------------------------------
350    Name: Matthias Blume (http://www.tti-c.org/blume/)
351    Date: 2007/01/30 11:05:00 CST
352    Description:
353    
354    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
355    Modified CM's startup code to use shiftArgs as it processes
356    command line arguments.  This way, the init code in each .sml-file
357    or library that is mentioned at the top level will see only
358    those arguments that have not yet been processed at this point.
359    In other words, the init code can "seize control" and process the
360    remaining command line.
361    
362    ----------------------------------------------------------------------
363    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
364    Date: 2007/01/30
365    Description:
366    
367    Added fromList function to the ORD_SET interface and lookup to the
368    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
369    
370    ----------------------------------------------------------------------
371    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
372    Date: 2007/01/28
373    Description:
374    
375    Added the UTF8 structure and signature from the Moby compiler to
376    the SML/NJ library (and the CML library).  These modules will replace
377    the version in the ml-lpt-lib.
378    
379    ----------------------------------------------------------------------
380    Name: Matthias Blume (http://www.tti-c.org/blume/)
381    Date: 2007/01/26 15:10:00 CST
382    Description:
383    
384    Added entries to handle ml-lpt-lib.cm in installer.
385    
386    ----------------------------------------------------------------------
387    Name: Matthias Blume (http://www.tti-c.org/blume/)
388    Date: 2006/12/15 11:10:00 CST
389    Tag: release-110.61
390    Description:
391    
392    New working release (110.61).  NEW BOOTFILES!
393    
394    This supersedes the pre-brown-paper-bug release (see below).
395    
396    ----------------------------------------------------------------------
397    Name: Matthias Blume (http://www.tti-c.org/blume/)
398    Date: 2006/12/15 11:00:00 CST
399    Description:
400    
401    Fixed brown-paper-bag bug with CM's pathname handling, which made
402    installation fail under Win32.
403    
404    ----------------------------------------------------------------------
405    Name: Matthias Blume (http://www.tti-c.org/blume/)
406    Date: 2006/12/14 12:00:00 CST
407    Description:
408    
409    Obsolete!
410    
411    [New working release (110.61).  NEW BOOTFILES!]
412    
413    ----------------------------------------------------------------------
414    Name: John Reppy (http://cs.uchicago.edu/~jhr)
415    Date: 2006/14/06 09:50:00 CST
416    Description:
417    
418    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
419    get the c_cc termios data copied correctly.  Also moved the allocation
420    of the string to avoid problems if it caused a GC.
421    
422    Thanks to Timothy Bourke for the bug report and fix.
423    
424    ----------------------------------------------------------------------
425    Name: Matthias Blume (http://www.tti-c.org/blume)
426    Date: 2006/12/08 09:50:00 CST
427    Description:
428    
429    Added code to CM's "standard shell tool" implementation which
430    causes it to tolerate (with a warning) the situation where the shell
431    command fails (e.g., due to the shell command's non-existence)
432    as long as all target files exist.
433    
434    This makes it possible to, e.g., build ml-yacc from sources even if
435    svn checkout messed up the time stamps on files in such a way that
436    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
437    be needed to re-process yacc.grm, but obviously it might not yet be
438    available at that time.)
439    
440    ----------------------------------------------------------------------
441    Name: John Reppy (http://cs.uchicago.edu/~jhr)
442    Date: 2006/12/06 12:06:00 CST
443    Description:
444    
445    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
446    recvVecFromNB' in the SOCKET signature.  This error is actually
447    in the SML Basis specification too.
448    
449    ----------------------------------------------------------------------
450    Name: Matthias Blume (http://www.tti-c.org/blume/)
451    Date: 2006/12/05 22:40:00 CST
452    Description:
453    
454    CM now reports undefined anchors as errors and aborts execution
455    rather than silently pressing on using bogus values.
456    
457    ----------------------------------------------------------------------
458    Name: Matthias Blume (http://www.tti-c.org/blume/)
459    Date: 2006/11/29 10:00:00 CST
460    Description:
461    
462    Use Say.vsay for printing the "[autoloading]" message, so
463    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
464    to suppress them.
465    
466    ----------------------------------------------------------------------
467    Name: Matthias Blume (http://www.tti-c.org/blume/)
468    Date: 2006/11/10 11:00:00 CST
469    Description:
470    
471    Fixed bug in CM where "with:" specifications that affect compilation
472    (as opposed to parsing) were ignored.
473    
474    ----------------------------------------------------------------------
475    Name: Matthias Blume (http://www.tti-c.org/blume/)
476    Date: 2006/11/09 14:30:00 CST
477    Tag: release-110.60
478    Description:
479    
480    New working release (110.60).  NEW BOOTFILES!
481    
482    This is the first subversion-hosted release.  There are also changes
483    to the directory layout.  Here is a table:
484    
485    (All pathnames are relative to the SML/NJ "root" directory.)
486    
487      config -> config
488    
489      src/cm -> base/cm
490      src/compiler -> base/compiler
491      src/runtime -> base/runtime
492      src/system -> base/system
493    
494      src/cm/pgraph -> pgraph
495    
496      src/READMES -> base/READMES
497      src/$notefile -> base/NOTES/$notefile
498         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
499                           MACOSXINSTALL WININSTALL
500    
501      src/smlnj-lib -> smlnj-lib
502      src/MLRISC -> MLRISC
503      ckit -> ckit
504      src/cml -> cml
505      src/eXene -> eXene
506      src/heap2asm -> heap2asm
507      src/lexgen -> lexgen
508      src/ml-burg -> ml-burg
509      src/ml-lex -> ml-lex
510      src/ml-yacc -> ml-yacc
511      src/ml-nlffi-lib -> nlffi/lib
512      src/ml-nlffigen -> nlffi/gen
513      src/smlnj-c -> smlnj-c
514      src/tools/TraceDebugProf -> trace-debug-profile
515    
516    In addition, there is also a new
517    
518      ml-lpt
519    
520    directory containing two new program generator tools: ml-ulex and
521    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
522    LL(k) parser generator). These tools are currently "beta-quality"
523    
524    The latest versios of the sources can now be obtained anonymously
525    via subversion.  For this, it is useful to first check out
526    
527       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
528    
529    and put the resulting directory on your shell's PATH.  This provides
530    access to three shell scripts: checkout-all.sh, stat-all.sh,
531    and refresh-all.sh.
532    
533    To create a freshly checked-out copy of the sources, do
534    
535       checkout-all.sh [dir]
536    
537    where dir is the optional SML/NJ root directory (default is ".").
538    
539    This creates the above directory layout.  Each subdirectory of
540    the root is under individual subversion control.  The stat-all.sh
541    and refresh-al.sh scripts apply "svn stat" or "svn update" to
542    each of these subtrees.
543    
544    ----------------------------------------------------------------------
545    Name: Matthias Blume (http://www.tti-c.org/blume/)
546    Date: 2006/11/02 12:20:00 CST
547    Description:
548    
549    Reorganized directory layout.
550    
551    This is a temporary solution, more reorganization is to come.
552    
553    The basic idea is to have a number of toplevel trees, each corresponding
554    to a well-defined part of the overall system.  Each part can be
555    maintained individually, even in separate source repositories,
556    although currently we still serve everything out of the main
557    smlnj-gforge tree.
558    
559    Installer and and scripts have been updated to reflect the new
560    layout.  The installer (base/src/system/smlnj/installer) is now
561    "scriptable" to avoid burning too much knowledge about the
562    layout into SML source code.  The main script used by the installer
563    is in config/actions.
564    
565    The main change is that many of the subdirectories of what used to
566    be known as "src" have moved to the toplevel.  The "src" directory
567    itself has moved down into a subtree called "base".  (We may eventually
568    get rid of the extra level of indirection represented by "src".)
569    
570    The layout is now as follows:
571    
572      toplevel tree name | default repository
573                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
574      -------------------+----------------------------------------------------
575      config             | $gf/config/trunk
576                         |
577      base               | $gf/sml/trunk
578                         |
579      smlnj-lib          | $gf/smlnj-lib/trunk
580      MLRISC             | $gf/MLRISC/trunk
581                         |
582      ml-yacc            | $gf/ml-yacc/trunk
583      ml-lex             | $gf/ml-lex/trunk
584      ml-burg            | $gf/ml-burg/trunk
585      lexgen             | $gf/lexgen/trunk
586      heap2asm           | $gf/heap2asm/trunk
587                         |
588      cml                | $gf/cml/trunk
589      eXene              | $gf/eXene/trunk
590      ckit               | $gf/ckit/trunk
591      nlffi              | $gf/nlffi/trunk
592                         |
593      smlnj-c            | $gf/smlnj-c/trunk
594    
595    In $gf/admin there are a few useful shell scripts for checking out
596    and maintaining the entire collection of trees:
597    
598       admin/checkout-all.sh [dir]
599          -- optionally creates dir and checks out all trees from their
600             default repositories; if dir is missing, checkout into .
601       admin/refresh-all.sh [dir]
602          -- looks at all trees (from the above list) in dir (default: .)
603             and runs "svn update" if the tree exists and is under
604             subversion control;
605             non-existing or non-subversion trees are skipped
606       admin/stat-all.sh [dir]
607          -- like refresh-all.sh, but runs "svn stat" instead
608    
609    ----------------------------------------------------------------------
610    Name: Matthias Blume (http://www.tti-c.org/blume/)
611    Date: 2006/10/05 11:30:00 CDT
612    Tag: blume-20061005-merge-amd64
613    Description:
614    
615    Merged code for AMD64 backend (Mike Rainey's work).
616    Everything is hooked up but untested.
617    
618    ----------------------------------------------------------------------
619    Name: Matthias Blume (http://www.tti-c.org/blume/)
620    Date: 2006/05/17 14:00:00 CST
621    Tag: Release_110_59
622    Description:
623    
624    New working version (110.59).  NEW BOOTFILES!
625    
626    I am freezing 110.59.  Changes other than the version-number increase:
627    
628      eXene:
629    
630         * committed changes to eXene from Alley Stoughton:
631             "fixed bugs in X authorization and resource handling, as well
632              as in the pile and viewport widgets"
633    
634      Runtime:
635        * fixed linking problem with NetBSD 3.x.
636    
637      Lexgen:
638        * lexgen tool handles non-ascii characters in 7-bit mode the same
639          way that ml-lex does
640    
641        * lexgen propagates exceptions the same way that ml-lex does
642    
643      CML:
644        * Fixed a bug in the SyncVar polling functions (iGetPoll,
645          mTakePoll, and mGetPoll) that could lead to livelock.
646    
647    ----------------------------------------------------------------------
648    Name: Matthias Blume (http://www.tti-c.org/blume/)
649    Date: 2006/05/12 15:20:00 CST
650    Tag: blume-20060515-makedepend
651    Description:
652    
653    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
654    way.  This should hopefully fix the ml-makedepend problem permanently.
655    
656    ----------------------------------------------------------------------
657    Name: Matthias Blume (http://www.tti-c.org/blume/)
658    Date: 2006/05/12 15:15:00 CST
659    Tag: blume-20060512-makedepend
660    Description:
661    
662    Fixed long-standing bug with ml-makedepend where it would output a
663    spurious dependency to a non-existing file.  (This is a simple fix.
664    It might need further looking into.)
665    
666    ----------------------------------------------------------------------
667    Name: Matthias Blume (http://www.tti-c.org/blume/)
668    Date: 2006/04/20 10:30:00 CDT
669    Tag: blume-20060420-heap2exec
670    Description:
671    
672    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
673    that enable heap2exec under Linux and FreeBSD.
674    
675    ----------------------------------------------------------------------
676    Name: John Reppy
677    Date: 2006/04/14
678    Tag:
679    Description:
680    
681    MLRISC changes:
682      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
683      2) added support for NOTB and XORB operators in pseudo-op expressions
684      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
685      4) added support for 64-bit integer literals
686    
687    ----------------------------------------------------------------------
688    Name: Matthias Blume (http://www.tti-c.org/blume/)
689  Date: yyyy/mm/dd  Date: yyyy/mm/dd
690  Tag: <post-commit CVS tag>  Tag: Release_110_58
691  Description:  Description:
692    
693    New working version (110.58).  NEW BOOTFILES!
694    
695    ----------------------------------------------------------------------
696    Name: Matthias Blume (http://www.tti-c.org/blume/)
697    Date: 2006/03/01 22:15:00 CST
698    Tag: blume-20060301-lexgen
699    Description:
700    
701    Incorporated several bugfixes to lexgen.  Compiler now compiles to
702    fixpoint when using lexgen instead of ml-lex.
703    
704    ----------------------------------------------------------------------
705    Name: Matthias Blume (http://www.tti-c.org/blume/)
706    Date: 2006/02/28 22:45:00 CST
707    Tag: blume-20060228-lexgen
708    Description:
709    
710    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
711    provided tarball.  The generated lexers still have problems.
712    
713    ----------------------------------------------------------------------
714    Name: Matthias Blume (http://www.tti-c.org/blume/)
715    Date: 2006/02/26 23:30:00 CST
716    Tag: blume-20060226-ml-flex
717    Description:
718    
719    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
720    of ml-flex on by default.
721    
722    ----------------------------------------------------------------------
723    Name: Matthias Blume (http://www.tti-c.org/blume/)
724    Date: 2006/02/24 16:30:00 CST
725    Tag: blume-20060224-ml-flex
726    Description:
727    
728    Added ml-flex sources.  Partially integrated, but should not be
729    turned on yet!  (Read: leave it commented-out in config/targets!)
730    
731    ----------------------------------------------------------------------
732    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
733    Date: 2006/02/23
734    Tag: jhr-20060223-x86-64
735    Description:
736    Changes to support building on x86-64 systems (using the 32-bit mode).
737    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
738    kernels dropped.
739    
740    ----------------------------------------------------------------------
741    Name: Allen Leung (leunga (at) reservoir (dot) com)
742    Date: 2006/02/22 15:07:00 EST
743    Tag: leunga-20060222-mdl-gen
744    Description:
745    
746      CM has changed.  Updated the script for rebuilding the MLRISC generated
747    files.
748    
749    ----------------------------------------------------------------------
750    Name: Matthias Blume (http://www.tti-c.org/blume/)
751    Date: 2006/02/14 17:30:00 CST
752    Tag: blume-20060214-intel-mac
753    Description:
754    
755    Hooked code for Darwin-specific Intel ABI into main compiler.
756    (This is a temporary solution which relies on the fact that the
757    compiler itself does not use NLFFI.  Eventually we need to divorce
758    intel mac from generic x86 unix code and make separate sets of binaries.)
759    
760    ----------------------------------------------------------------------
761    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
762    Date: 2006/02/13
763    Tag: jhr-20060213-intel-mac
764    Description:
765    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
766    
767    ----------------------------------------------------------------------
768    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
769    Date: 2006/02/06
770    Tag: jhr-20060206-intel-mac
771    Description:
772    Changes to support MacOS X on Intel hardware.  The C-calls support in
773    MLRISC must also be updated to support the MacOS X ABI.
774    
775    ----------------------------------------------------------------------
776    Name: Matthias Blume (http://www.tti-c.org/blume/)
777    Date: 2005/12/16 00:15:00 CST
778    Tag: blume-20051216-cm
779    Description:
780    
781    Improved error reporting and handling in CM.
782    
783    ----------------------------------------------------------------------
784    Name: Matthias Blume (http://www.tti-c.org/blume/)
785    Date: 2005/11/21 14:00:00 CST
786    Tag: blume-20051121-html-lib
787    Description:
788    
789    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
790    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
791    at the time when config/preloads is processed, the library has to
792    be referred to by another name.  In 110.57 this would be
793    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
794    to be valid as well.)
795    
796    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
797    
798    ----------------------------------------------------------------------
799    Name: Matthias Blume (http://www.tti-c.org/blume/)
800    Date: 2005/11/19 13:45:00 CST
801    Tag: Release_110_57
802    Description:
803    
804    Moved release tag for 110.57.
805    
806    ----------------------------------------------------------------------
807    Name: Matthias Blume (http://www.tti-c.org/blume/)
808    Date: 2005/11/19 23:35:00 CST
809    Tag: blume-20051119-fish
810    Description:
811    
812    Fixed a problem in config/install.sh where it tries to "fish" the
813    name of the CM metadata directory from the wrong place (because
814    the physical location of basis.cm has changed).  Also, corrected the
815    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
816    these problems.)
817    
818    ----------------------------------------------------------------------
819    Name: Matthias Blume (http://www.tti-c.org/blume/)
820    Date: 2005/11/16 14:30:00 CST
821    Tag: blume-orig-110_57
822    Description:
823    
824    New working version (110.57).  NEW BOOTFILES!
825    
826    UPDATE: The release tag has been moved to include a fix for a brown-paper-
827            bag glitch (see above).
828    
829    ----------------------------------------------------------------------
830    Name: Matthias Blume (http://www.tti-c.org/blume/)
831    Date: 2005/11/16 10:25:00 CST
832    Tag: blume-22051116-btrace
833    Description:
834    
835    Fixed problem with bogus exception message when using back-trace
836    facility.
837    
838    ----------------------------------------------------------------------
839    Name: Matthias Blume (http://www.tti-c.org/blume/)
840    Date: 2005/11/15 22:35:00 CST
841    Tag: blume-22051115-array2copy
842    Description:
843    
844    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
845    
846    ----------------------------------------------------------------------
847    Name: Matthias Blume (http://www.tti-c.org/blume/)
848    Date: 2005/11/15 21:35:00 CST
849    Tag: blume-22051115-versiontool
850    Description:
851    
852    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
853    file gets loaded as a tool -- by the equivalent of CM.make during the
854    run of CMB.make.  Thus, CMB's path configuration is meaningless for
855    it.  Instead, it has the status of "user code", so it should use
856    $/basis.cm to refer to the Basis library.  (At least that's true for
857    the purpose of bootstrapping the previous change.  In the future it
858    might make sense to have versiontool.cm refer to
859    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
860    compiler itself uses.)
861    
862    Also patched src/system/testml to have it activate those extra anchor
863    bindings in config/extrapathconfig.
864    
865    ----------------------------------------------------------------------
866    Name: Matthias Blume (http://www.tti-c.org/blume/)
867    Date: 2005/11/15 16:35:00 CST
868    Tag: blume-22051115-libraries
869    Description:
870    
871    This change affects the way the following libraries are tied into
872    the system:
873    
874       $/basis.cm
875       $/smlnj-lib.cm
876       $/pp-lib.cm
877       $/controls-lib.cm
878       $/html-lib.cm
879       $/ml-yacc-lib.cm
880    
881    These libraries are now internally (as seen from the source code
882    of the implementation itself) known by the following names:
883    
884       $smlnj/basis/basis.cm
885       $smlnj/smlnj-lib/smlnj-lib.cm
886       $smlnj/smlnj-lib/pp-lib.cm
887       $smlnj/smlnj-lib/controls-lib.cm
888       $smlnj/smlnj-lib/html-lib.cm
889       $smlnj/ml-yacc/ml-yacc-lib.cm
890    
891    This makes it possible to work with code that requires different
892    versions of these libraries, and which refers to these libraries using
893    their "default" names (i.e., the first set of names above).  In other
894    words, one can un-define or re-define those default names without
895    compromising the proper functioning of the compiler itself.
896    
897    A similar procedure had already been performed for several of the
898    MLRISC libraries that are linked into the compiler.  I did some
899    cleanup on this code.
900    
901    A new file in the config directory (named extrapathconfig) is
902    responsible for setting up path anchors that the compiler itself does
903    not need, but that are typically required by user code.
904    
905    ----------------------------------------------------------------------
906    Name: Matthias Blume
907    Date: 2005/11/07 17:05:00 CST
908    Tag: blume-20051107-slice
909    Description:
910    
911    Fixed erroneous out-of-bounds test in the "update" function of
912    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
913    out the problem.)
914    
915    Pushed some Basis changes through ML-Lex, CML, and eXene.
916    
917    ----------------------------------------------------------------------
918    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
919    Date: 2005/11/07
920    Description:
921    Fixed a Basis incompatibility: The depreciated function Substring.all
922    was removed (use Substring.full instead).
923    
924    ----------------------------------------------------------------------
925    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
926    Date: 2005/11/05
927    Description:
928    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
929    
930    ----------------------------------------------------------------------
931    Name: Matthias Blume (http://www.tti-c.org/blume/)
932    Date: 2005/11/02 16:25:00 CST
933    Tag: blume-20051102-hex
934    Description:
935    
936    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
937      in either upper case or lower case format.
938    * Pushed changes to names of Pack<N>{Big,Little} structures through
939      CML and eXene.
940    
941    ----------------------------------------------------------------------
942    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
943    Date: 2005/11/02
944    Description:
945    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
946    be called PackWord<N>{Big,Little}.
947    
948    ----------------------------------------------------------------------
949    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
950    Date: 2005/10/28
951    Description:
952    Fixed a minor Basis incompatibility: hex digits should be upper case.
953    
954    ----------------------------------------------------------------------
955    Name: Matthias Blume (blume (at) tti - c (dot) org)
956    Date: 2005/10/25 16:00:00 CDT
957    Tag: Release_110_56
958    Description:
959    
960    New working version (110.56).  NEW BOOTFILES!
961    
962    ----------------------------------------------------------------------
963    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
964    Date: 2005/10/25
965    Description:
966    Added interval sets to utility library (signatures INTERVAL_DOMAIN
967    and INTERVAL_SET, and functor IntervalSetFn).
968    
969    ----------------------------------------------------------------------
970    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
971    Date: 2005/10/14
972    Description:
973    Add Zhong Shao's fix for datatype equality functions.
974    
975    ----------------------------------------------------------------------
976    Name: Allen Leung (leunga (at) reservoir (dot) com)
977    Date: 2005/10/14 12:30:00 EST
978    Tag: leunga-20051014-x86-spill
979    Description:
980    
981    Bug fix a bug found by Carl Hauser.
982    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
983    
984    ----------------------------------------------------------------------
985    Name: Allen Leung (leunga (at) reservoir (dot) com)
986    Date: 2005/10/14 11:15:00 EST
987    Tag: leunga-20051014-x86-asm
988    Description:
989    
990    Removed some debugging code in file x86Asm.sml.
991    The function emit_operand was printing out debugging output.
992    
993    ----------------------------------------------------------------------
994    Name: John Reppy
995    Date: 2005/07/27
996    Tag:
997    Description:
998    
999    Fixed ml-lex to recognize "\r" as representing carriage return.
1000    
1001    ----------------------------------------------------------------------
1002    Name: John Reppy
1003    Date: 2005/07/27
1004    Tag:
1005    Description:
1006    
1007    Fixed ml-yacc to work on files with non-native end-of-line
1008    encodings (e.g., Windows text file on a Unix system).
1009    
1010    ----------------------------------------------------------------------
1011    Name: John Reppy
1012    Date: 2005/07/20
1013    Tag:
1014    Description:
1015    
1016    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
1017    to support HPUX 11.
1018    
1019    ----------------------------------------------------------------------
1020    Name: John Reppy
1021    Date: 2005/07/06
1022    Tag:
1023    Description:
1024    
1025    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
1026    
1027    ----------------------------------------------------------------------
1028    Name: Matthias Blume (blume (at) tti - c (dot) org)
1029    Date: 2005/07/06 00:45:00 CDT
1030    Tag: blume-20050706-slice-copy
1031    Description:
1032    
1033    Fixed reversed logic for deciding whether to "copy up" or "copy down"
1034    in *-array-slice.sml.
1035    
1036    ----------------------------------------------------------------------
1037    Name: Allen Leung (leunga (at) reservoir (dot) com)
1038    Date: 2005/05/31 17:00:00 EST
1039    Tag: leunga-20050531-cygwin-fault-2
1040    Description:
1041    
1042    A typo in the cygwin code fixed.
1043    
1044    ----------------------------------------------------------------------
1045    Name: Allen Leung (leunga (at) reservoir (dot) com)
1046    Date: 2005/05/31 16:47:00 EST
1047    Tag: leunga-20050531-cygwin-fault
1048    Description:
1049    
1050    Updated Cygwin's fault/signal handling to match the Windows version.
1051    Updated the export list.
1052    
1053    ----------------------------------------------------------------------
1054    Name: Matthias Blume (blume (at) tti - c (dot) org)
1055    Date: 2005/05/18 13:35:00 CDT
1056    Tag: Release_110_54
1057    Description:
1058    
1059    New working version (110.54).  NEW BOOTFILES!
1060    
1061    ----------------------------------------------------------------------
1062    Name: Matthias Blume (blume (at) tti - c (dot) org)
1063    Date: 2005/05/18 11:58:00 CDT
1064    Tag: blume-20050518-installer
1065    Description:
1066    
1067    Added support scripts for Mac OS X PackageMaker and modified
1068    config/install.sh so that it supports re-dumping a heap image
1069    after customization.
1070    
1071    ----------------------------------------------------------------------
1072    Name: Matthias Blume (blume (at) tti - c (dot) org)
1073    Date: 2005/05/18 10:55:00 CDT
1074    Tag: blume-20050518-realdiv-noovld
1075    Description:
1076    
1077    Un-overloaded / to work around bug in overloading resolution code.
1078    
1079    ----------------------------------------------------------------------
1080    Name: Matthias Blume (blume (at) tti - c (dot) org)
1081    Date: 2005/05/16 23:50:00 CDT
1082    Tag: blume-20050516-redump-heap
1083    Description:
1084    
1085    Added mechanism for re-creating a heap file for the interactive system
1086    after configuration variables have been changed.
1087    
1088       CM.redump_heap : string -> unit
1089    
1090    This is much like SMLofNJ.exportML, but starting from the resulting
1091    heap does not return to the caller of CM.redump_heap but
1092    restarts the interactive system from scratch.  The original call of
1093    CM.redump_heap does not return but ends the interactive session.
1094    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
1095    
1096    Internally, redump_heap winds the dynamic execution context back to
1097    the point where the original heap image was created and re-executes
1098    the heap image generation code in the boot code.
1099    
1100    ----------------------------------------------------------------------
1101    Name: Matthias Blume (blume (at) tti - c (dot) org)
1102    Date: 2005/05/09 21:55:00 CDT
1103    Tag: blume-20050509-word64
1104    Description:
1105    
1106    Added a hack to the existing hack known as Word64 to make fromString
1107    behave correctly.  I am still not sure whether Word64.scan will work
1108    as specified with respect to the interaction of radix and prefix.
1109    
1110    ----------------------------------------------------------------------
1111    Name: Allen Leung (leunga (at) reservoir (dot) com)
1112    Date: 2005/05/04 11:50:00 EST
1113    Tag: leunga-20050504-checkgc
1114    Description:
1115    
1116    Added a gc protocol checking phase.  This phase is enabled with
1117    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
1118    
1119    ----------------------------------------------------------------------
1120    Name: Matthias Blume (blume (at) tti - c (dot) org)
1121    Date: 2005/05/04 10:45:00 CDT
1122    Tag: blume-20050504-intinf
1123    Description:
1124    
1125    Fixed a bug in the implementation of div and mod for IntInf.
1126    Thanks to Neophytos Michael for reporting the problem.
1127    
1128    ----------------------------------------------------------------------
1129    Name: Matthias Blume (blume (at) tti - c (dot) org)
1130    Date: 2005/05/04 10:35:00 CDT
1131    Tag: blume-20050504-join
1132    Description:
1133    
1134    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
1135    
1136    ----------------------------------------------------------------------
1137    Name: Matthias Blume (blume (at) tti - c (dot) org)
1138    Date: 2005/02/28 23:40:00 CST
1139    Tag: blume-20050228-mVar
1140    Description:
1141    
1142    Fixed serious bug (brown paper bag variety) in new implementation of
1143    structure Atom in CML.  (I had accidentally used a mailbox instead of
1144    an mvar, leaving the door open for races.)
1145    
1146    ----------------------------------------------------------------------
1147    Name: Matthias Blume (blume (at) tti - c (dot) org)
1148    Date: 2005/02/25 15:00:00 CST
1149    Tag: Release_110_53
1150    Description:
1151    
1152    New working version (110.53).  NEW BOOTFILES!
1153    
1154    ----------------------------------------------------------------------
1155    Name: Matthias Blume (blume (at) tti - c (dot) org)
1156    Date: 2005/02/25 14:50:00 CST
1157    Tag: blume-20050225-susp
1158    Description:
1159    
1160    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
1161    implemented in Core -- which means that it is the same as the one used
1162    by the lazy extension.
1163    
1164    ----------------------------------------------------------------------
1165    Name: Matthias Blume (blume (at) tti - c (dot) org)
1166    Date: 2005/02/24 16:50:00 CST
1167    Tag: blume-20050224-cml-atom
1168    Description:
1169    
1170    Simpler and at the same time more general implementation of structure
1171    Atom in CML.
1172    
1173    ----------------------------------------------------------------------
1174    Name: Matthias Blume (blume (at) tti - c (dot) org)
1175    Date: 2005/02/15 17:35:00 CST
1176    Tag: blume-20050215-tools
1177    Description:
1178    
1179    Created new "tools" directory under "src" and moved "TraceDebugProf"
1180    there.
1181    
1182    ----------------------------------------------------------------------
1183    Name: Matthias Blume (blume (at) tti - c (dot) org)
1184    Date: 2005/02/10 17:55:00 CST
1185    Tag: blume-20050210-longlong
1186    Description:
1187    
1188    Implemented "long long" arguments and results for NLFFI.  (Only the
1189    PPC/MacOS implementation is complete, the other backends still need to
1190    be updated.)
1191    
1192    ----------------------------------------------------------------------
1193    Name: Matthias Blume (blume (at) tti - c (dot) org)
1194    Date: 2005/01/24 17:40:00 CST
1195    Tag: blume-20050124-mlyacc
1196    Description:
1197    
1198    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
1199    problem with certain "as" patterns which previously got rendered
1200    using incorrect syntax.
1201    
1202    ----------------------------------------------------------------------
1203    Name: Matthias Blume (blume (at) tti - c (dot) org)
1204    Date: 2005/01/18 12:00:00 CST
1205    Tag: blume-20050118-profile
1206    Description:
1207    
1208    Made time profiling code (interrupt handler) in runtime system aware
1209    of new array representation.
1210    
1211    ----------------------------------------------------------------------
1212    Name: Matthias Blume (blume (at) tti - c (dot) org)
1213    Date: 2005/01/14 18:00:00 CST
1214    Tag: blume-20050114-heap2exec
1215    Description:
1216    
1217    Implemented new (but still experimental) heap2exec facility.  This is
1218    tested under Mac OS X and should work under Linux (will test shortly).
1219    It will probably also work on the Sparc (will test some time later).
1220    
1221      - removed old "HACKED_STANDALONE" hack from runtime
1222    
1223    To be able to test this, uncomment the request for "heap2asm" in
1224    config/targets prior to installation.  (Notice that this is different
1225    from "heap2exec" mentioned below.  Not a typo.)
1226    
1227    To perform an actual test, run the command
1228    
1229       $ bin/heap2exec heapfile execfile
1230    
1231    (You can put heap2exec on your shell's path.)
1232    
1233    For example, run
1234    
1235      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
1236    
1237    This will create a standalone executable called "mly" which you can
1238    then invoke directly as a command.
1239    
1240    ----------------------------------------------------------------------
1241    Name: Matthias Blume (blume (at) tti - c (dot) org)
1242    Date: 2005/01/07 11:44:00 CST
1243    Tag: blume-20050107-mlstring
1244    Description:
1245    
1246    fixed off-by-one error in ML_STRING macro (globals.c)
1247    
1248    ----------------------------------------------------------------------
1249    Name: Matthias Blume (blume (at) tti - c (dot) org)
1250    Date: 2004/12/23 18:00:00 CST
1251    Tag: blume-20041223-santa
1252    Description:
1253    
1254    Made ml-build script "smarter" (but only very little).
1255    
1256    ----------------------------------------------------------------------
1257    Name: Matthias Blume (blume (at) tti - c (dot) org)
1258    Date: 2004/12/21 15:05:00 CST
1259    Tag: blume-20041221-longlong
1260    Description:
1261    
1262    * Implemented access to signed and unsigned long long data in NLFFI.
1263    (The parameter-passing part of the picture has not complete. But
1264    data structure access seems to work.)
1265    
1266    * Fixed CM's incorrect assumption that the PPC is little-endian.
1267      (On the Mac, it is big-endian.  And that's currently our only
1268      PPC platform.)
1269    
1270    ----------------------------------------------------------------------
1271    Name: Matthias Blume (blume (at) tti - c (dot) org)
1272    Date: 2004/12/21 12:50:00 CST
1273    Tag: blume-20041221-memory
1274    Description:
1275    
1276    Some cleanup in the $c/memory.cm library: separated some concerns by
1277    moving allocation code and memory access code each into their own
1278    files.
1279    
1280    ----------------------------------------------------------------------
1281    Name: Allen Leung (leunga (at) reservoir (dot) com)
1282    Date: 2004/12/17 16:12:00 EST
1283    Tag: leunga-20041217-cygwin-smlnj-home
1284    Description:
1285    
1286        The Unix I/O library of SML/NJ on cygwin does not understand
1287    Windows style pathname, so problems arise when SMLNJ_HOME is set
1288    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1289    to a POSIX pathname on cygwin.
1290    
1291    ----------------------------------------------------------------------
1292    Name: Matthias Blume (blume (at) tti - c (dot) org)
1293    Date: 2004/12/16 13:35:00 CST
1294    Tag: Release_110_52
1295    Description:
1296    
1297    Last-minute changes incorporated into 110.52.  Release tag moved.
1298    
1299    The changes:
1300       - HashString.hashString' -> HashString.hashSubstring
1301       - bug fix in UnivariateStats
1302    
1303    ----------------------------------------------------------------------
1304    Name: Matthias Blume (blume (at) tti - c (dot) org)
1305    Date: 2004/12/15 23:40:00 CST
1306    Tag: blume-20041215-hashSubstring
1307    Description:
1308    
1309    - HashString.hashString' -> HashString.hashSubstring
1310    - corresponding changes in atom.sml
1311    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1312      added some comments
1313    
1314    ----------------------------------------------------------------------
1315    Name: Matthias Blume (blume (at) tti - c (dot) org)
1316    Date: 2004/12/15 15:30:00 CST
1317    Tag: (Release_110_52)
1318    Description:
1319    
1320    New working version (110.52).  NEW BOOTFILES!
1321    
1322    ----------------------------------------------------------------------
1323    Name: Matthias Blume (blume (at) tti - c (dot) org)
1324    Date: 2004/12/15 12:45:00 CST
1325    Tag: blume-20041215-spaces
1326    Description:
1327    
1328    More on the space problem (this time for Win32).
1329    
1330    ----------------------------------------------------------------------
1331    Name: Matthias Blume (blume (at) tti - c (dot) org)
1332    Date: 2004/12/14 17:30:00 CST
1333    Tag: blume-20041214-spaces
1334    Description:
1335    
1336    Hacked some of the scripts (in particular: the installer) to cope with
1337    spaces in filenames a bit better.  But beware: the current "solution"
1338    is likely still full of bugs and inherently incomplete.  (We need to
1339    do away with those shell scripts for a comprehensive solution.)
1340    
1341    ----------------------------------------------------------------------
1342    Name: Matthias Blume (blume (at) tti - c (dot) org)
1343    Date: 2004/12/13 14:45:00 CST
1344    Tag: blume-20041213-ml-makedepend
1345    Description:
1346    
1347    Fixed bug in code for ml-makedepend.
1348    
1349    ----------------------------------------------------------------------
1350    Name: Matthias Blume (blume (at) tti - c (dot) org)
1351    Date: 2004/12/09 16:30:00 CST
1352    Tag: blume-20041209-statistics
1353    Description:
1354    
1355    Added two simple but potentially useful statistics modules to SML/NJ Library.
1356    (See CHANGES file there.)
1357    
1358    ----------------------------------------------------------------------
1359    Name: Matthias Blume (blume (at) tti - c (dot) org)
1360    Date: 2004/12/01 16:50:00 CST
1361    Tag: blume-20041201-atom
1362    Description:
1363    
1364    smlnj-lib:
1365    
1366      Added function HashString.hashString' for substrings.
1367      Hand-inlined CharVector.foldl into HashString (for speed).
1368      Modified implementation of structure Atom to avoid extracting
1369      strings from substrings unless necessary.
1370      (Also see CHANGES file for smlnj-lib.)
1371    
1372    ----------------------------------------------------------------------
1373    Name: Matthias Blume (blume (at) tti - c (dot) org)
1374    Date: 2004/11/24 22:15:00 CST
1375    Tag: blume-20041124-cml
1376    Description:
1377    
1378    Made sure CML compiles when Position = Int64.
1379    
1380    ----------------------------------------------------------------------
1381    Name: Matthias Blume (blume (at) tti - c (dot) org)
1382    Date: 2004/11/24 14:30:00 CST
1383    Tag: blume-20041124-position
1384    Description:
1385    
1386    The compiler can now be compiled in a mode that makes structure Position
1387    equal to Int64.  The default, however, is unchanged (Position = Int31)
1388    for the time being.
1389    
1390    To enable 64-bit positions, use the following procedure:
1391    
1392    1. Start sml
1393    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1394    3. Type
1395          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1396    4. Run CMB.make() as usual.
1397    
1398    This is barely tested.  The only test so far was a little SML program
1399    counting the number of characters in an 8-gigabyte file by
1400    reading it character-by-character.  That test was successful.
1401    
1402    In support of 64-bit positions, a number of new functions have been
1403    added to the runtime system.
1404    
1405    ----------------------------------------------------------------------
1406    Name: Matthias Blume (blume (at) tti - c (dot) org)
1407    Date: 2004/11/23 14:45:00 CST
1408    Tag: blume-20041123-useFile
1409    Description:
1410    
1411    Fixed a problem with unhelpful error messages related to problems with
1412    .cm- or .sml files that appear as part of the sml command line.
1413    
1414    ----------------------------------------------------------------------
1415    Name: Matthias Blume (blume (at) tti - c (dot) org)
1416    Date: 2004/11/18 15:40:00 CST
1417    Tag: Release_110_51
1418    Description:
1419    
1420    New working version (110.51).  NEW BOOTFILES!
1421    
1422    ----------------------------------------------------------------------
1423    Name: Matthias Blume (blume (at) tti - c (dot) org)
1424    Date: 2004/11/18 15:35:00 CST
1425    Tag: <none>
1426    Description:
1427    
1428    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1429    Joemann).
1430    
1431    ----------------------------------------------------------------------
1432    Name: Allen Leung (leunga (at) reservoir (dot) com)
1433    Date: 2004/11/17 16:05:21 EST 2004
1434    Tag: leunga-20041117-mlrisc-live-kill
1435    Description:
1436    
1437       Added support for MLTree constructs LIVE and KILL
1438    to all the architectures.
1439    
1440    ----------------------------------------------------------------------
1441    Name: Matthias Blume (blume (at) tti - c (dot) org)
1442    Date: 2004/11/13 00:20:00 CST
1443    Tag: blume-20041113-versiontool
1444    Description:
1445    
1446    - Stripped down the versiontool: It now only handles the version number.
1447      The date string is generated at bootstrap time (during makeml).
1448    
1449    - In a previous commit, fixed a minor issue with how polyequal is being
1450      translated.  In particular, the code now "looks through" abstractions.
1451      This results in slightly fewer polyEqual warnings and hopefully slightly
1452      more efficient code.  Important examples for where this matters are
1453      the new int64 and word64 types.
1454    
1455    ----------------------------------------------------------------------
1456    Name: Matthias Blume (blume (at) tti - c (dot) org)
1457    Date: 2004/11/12 00:30:00 CST
1458    Tag: blume-20041112-int64
1459    Description:
1460    
1461    Structure Int64 fully hooked in.  (The implementation is not very
1462    efficient, though.)
1463    
1464    ----------------------------------------------------------------------
1465    Name: Matthias Blume (blume (at) tti - c (dot) org)
1466    Date: 2004/11/11 17:30:00 CST
1467    Tag: blume-20041111-more64
1468    Description:
1469    
1470    All the pieces of Word64 are now there, with the exception of the
1471    conversions from and to LargeWord. (Eventually these need to be identities,
1472    but for the time being they don't even make sense because LargeWord is
1473    32-bit wide.)
1474    
1475    Also started to add similar support for Int64, but major pieces of that
1476    are still missing.
1477    
1478    ----------------------------------------------------------------------
1479    Name: Matthias Blume (blume (at) tti - c (dot) org)
1480    Date: 2004/11/11 00:15:00 CST
1481    Tag: blume-20041111-word64
1482    Description:
1483    
1484    Structure Word64 is now (almost) complete, word literals and patterns
1485    seem to work.  There are a few odd pieces missing.  In particular,
1486    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1487    at the moment.
1488    
1489    Making Word64 official would mean that LargeWord becomes Word64.  But
1490    this requires extreme care because most word-word conversions have to
1491    go through LargeWord, so making a mistake means loss of efficiency or
1492    worse.  Eventually there will be a solution similar to (but actually
1493    simpler than) what I did with IntInf.
1494    
1495    ----------------------------------------------------------------------
1496    Name: Matthias Blume (blume (at) tti - c (dot) org)
1497    Date: 2004/11/10 18:12:00 CST
1498    Tag: blume-20041110-64bit
1499    Description:
1500    
1501    More 64-bit hacking (but still not even half-way there yet).
1502    Also, some assorted improvements to the handling of 8-bit words.
1503    
1504    ----------------------------------------------------------------------
1505    Name: Matthias Blume (blume (at) tti - c (dot) org)
1506    Date: 2004/11/09 17:50:00 CST
1507    Tag: <none>
1508    Description:
1509    
1510    Started adding some infrastructure for supporting 64-bit int- and
1511    word-types.  (Still in its very early stages.)
1512    
1513    ----------------------------------------------------------------------
1514    Name: Matthias Blume (blume (at) tti - c (dot) org)
1515    Date: 2004/10/28 10:45:00 CDT
1516    Tag: Release_110_50
1517    Description:
1518    
1519    New working version (110.50).  NEW BOOTFILES!
1520    
1521                 =====================
1522    
1523    Also:
1524    
1525      - Changend config/srcarchiveurl from a file just
1526        containing the URL string into a file containing
1527        shell script code.  The code has access to the $VERSION variable.
1528      - Made corresponding changes to config/install.sh and config/unpack.
1529      - Default contents of config/srcarchiveurl uses $VERSION and
1530        normally does not have to be edited to reflect a version change.
1531    
1532      (As a result, a version change can be done by just editing
1533       config/version, the rest is now automatic.)
1534    
1535    ----------------------------------------------------------------------
1536    Name: Matthias Blume (blume (at) tti - c (dot) org)
1537    Date: 2004/10/27 17:50:00 CDT
1538    Tag: blume-20041027-btrace-msg
1539    Description:
1540    
1541    BackTrace.monitor now also reports the source of the exception that
1542    triggered the trace.
1543    
1544    ----------------------------------------------------------------------
1545    Name: Matthias Blume (blume (at) tti - c (dot) org)
1546    Date: 2004/10/27 17:20:00 CDT
1547    Tag: blume-20041027-x86-c-calls
1548    Description:
1549    
1550    This is the HISTORY entry for two earlier commits, both concerning
1551    the x86 c-calls code in MLRISC:
1552    
1553      - added a missing LOAD in the code that deals with struct arguments
1554      - made sure the caller does not add the wrong number of bytes to the
1555        stack pointer after a call of a function returning a struct
1556        (the callee already pops the implicit argument which points to
1557         the space reserved for the result)
1558    
1559    ----------------------------------------------------------------------
1560    Name: Allen Leung (leunga (at) reservoir (dot) com)
1561    Date: 2004/10/24 14:00:00 EST
1562    Tag: leunga-20041024-x86-gas-fucomip
1563    Description:
1564    
1565       John discovered a bug in the syntax of fucomip.
1566       The opcodes FU?COMIP? have been changed to
1567    
1568           fu?comip? %st(i), %st
1569    
1570    ----------------------------------------------------------------------
1571    Name: Matthias Blume (blume (at) tti - c (dot) org)
1572    Date: 2004/10/20 15:06:00 CDT
1573    Tag: blume-20041020-standalone-backtrace
1574    Description:
1575    
1576    Added a mechanism for getting back-trace information from standalone
1577    programs.  Here is how it works:
1578    
1579       1. The part of the program from which you want to get backtrace
1580          information (usually the whole program) should be wrapped with
1581          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1582          main program could be modified from something like
1583    
1584             fun main (pgm, args) = ...
1585    
1586         to
1587    
1588            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1589    
1590       2. To be able to access BackTrace.monitor, you have to add
1591          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1592          main function.
1593    
1594       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1595          CM might have created in the past for your project).
1596    
1597       4. Build the system using this command line:
1598    
1599             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1600                      myprog.cm MyProg.main myprog
1601    
1602          instead of the usual
1603    
1604             ml-build myprog.cm MyProg.main myprog
1605    
1606    I changed a library name:
1607    
1608       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1609    
1610    New libraries:
1611    
1612       $smlnj-tdp/back-trace.cm
1613          -- when loaded causes the back-trace plugin to be installed
1614       $smlnj-tdp/coverage.cm
1615          -- when loaded causes the coverage plugin to be installed
1616    
1617    ----------------------------------------------------------------------
1618    Name: Matthias Blume (blume (at) tti - c (dot) org)
1619    Date: 2004/10/18 16:45:00 CDT
1620    Tag: blume-20041018-groupowner
1621    Description:
1622    
1623    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1624    
1625    Eliminated group owner specs from .cm files throughout the source tree.
1626    
1627    ----------------------------------------------------------------------
1628    Name: Matthias Blume (blume (at) tti - c (dot) org)
1629    Date: 2004/10/15 15:45:00 CDT
1630    Tag: blume-20041015-coverage
1631    Description:
1632    
1633    * Test coverage tool added!
1634    * Further reorganization of tracing-, debugging-, and profiling support:
1635    
1636        - moved original BTImp -- now called BackTrace -- into a separate
1637          library called $/trace-debug-profile.cm
1638        - eliminated all mentions of BTrace from SMLofNJ.Internals
1639        - only the instrumentation mechanism is now left in the compiler proper
1640        - BackTrace module is a plugin which is NOT plugged in by default
1641        - Coverage module is another such plugin
1642    
1643    To get the benefits of any of these plugin modules, the code in
1644    question must be compiled with tdp instrumentation turned on.  This
1645    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1646    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1647    
1648    Plugins are selected at link time.  (Pre-compiled instrumented code
1649    can be re-loaded with different plugins in effect.)  When an
1650    instrumented module is linked, whatever plugins are at that time
1651    enabled will come into effect for that module.
1652    
1653    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1654    and invoke BackTrace.install() (e.g., from the interactive prompt).
1655    To enable the coverage plugin, load the same library and invoke
1656    Coverage.install().
1657    
1658    Back-traces are generated automatically on uncaught exceptions and
1659    when the code in question explicitly invokes BackTrace.trigger().
1660    
1661    Coverage (and execution frequency-) information must be queried
1662    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1663    
1664    ----------------------------------------------------------------------
1665    Name: Matthias Blume (blume (at) tti - c (dot) org)
1666    Date: 2004/10/14 17:40:00 CDT
1667    Tag: blume-20041014-tdp-core
1668    Description:
1669    
1670    Snapshot of a significant overhaul of how the trace/debug/profile support
1671    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1672    
1673    ----------------------------------------------------------------------
1674    Name: Matthias Blume (blume (at) tti - c (dot) org)
1675    Date: 2004/10/13 16:34:00 CDT
1676    Tag: blume-20041013-tdp
1677    Description:
1678    
1679    Some rationalization of names:
1680    
1681       structure BTrace -> structure TDPInstrument
1682       etc.
1683    
1684    This is is preparation of using the original back-trace
1685    instrumentation for other purposes.  "TDP" stands for
1686    Trace/Debug/Profile.
1687    
1688    The control flag controlling whether instrumentation is on or off is now
1689    registered under a different name, so instead of running sml as
1690    
1691     sml -Cinstrument.btrace-mode=true
1692    
1693    one has to say
1694    
1695     sml -Ctdp.instrument=true
1696    
1697    ----------------------------------------------------------------------
1698    Name: Matthias Blume (blume (at) tti - c (dot) org)
1699    Date: 2004/10/11 16:37:00 CDT
1700    Tag: blume-20041011-regions
1701    Description:
1702    
1703    Made some minor modifications to elabcore.sml to have source regions
1704    be propagated more tightly -- resulting in better (i.e., smaller)
1705    regions being reported in error- and debug messages.
1706    
1707    ----------------------------------------------------------------------
1708    Name: Matthias Blume (blume (at) tti - c (dot) org)
1709    Date: 2004/10/08 22:50:00 CDT
1710    Tag: blume-20041008-cmkw
1711    Description:
1712    
1713    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1714    treats subsequent occurrences of "group", "library", "source", "is",
1715    "*", and "-" as ordinary identifiers rather than keywords.
1716    
1717    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1718    is supposed to accept a tool argument called "source", but this did
1719    not work because of the clash with the keyword.
1720    
1721    ----------------------------------------------------------------------
1722    Name: Matthias Blume (blume (at) tti - c (dot) org)
1723    Date: 2004/10/07 16:00:00 CDT
1724    Tag: blume-20041007-cleanup
1725    Description:
1726    
1727    Assorted cleanup work:
1728    
1729      - got rid of intstrmap in favor of using the library's
1730        hash table implementation
1731      - threw out most of the pathnames stuff, as it was not used anyway
1732      - simplified tokentable implementation
1733      - fixed some minor spelling errors
1734    
1735    ----------------------------------------------------------------------
1736    Name: Matthias Blume (blume (at) tti - c (dot) org)
1737    Date: 2004/10/06 15:15:15 CDT
1738    Tag: blume-20041006-handler
1739    Description:
1740    
1741    Cleaned up the absyn to reflect the invariant that HANDLE always
1742    carries a FNexp as part of the type definition.  This eliminates some
1743    superfluous sanity checks at runtime down the road.
1744    
1745    Some minor cleanup of the btrace code.
1746    
1747    ----------------------------------------------------------------------
1748    Name: Matthias Blume (blume (at) tti - c (dot) org)
1749    Date: 2004/10/01 10:20:30 CDT
1750    Tag: blume-20041001-slave
1751    Description:
1752    
1753    Added hack to make slave mode work in the presence of the version
1754    tool.  (Still, since the master does two passes over the code for
1755    CMB.make, the release number gets bumped twice when slaves are
1756    attached.  I don't know if this is worth fixing...)
1757    
1758    ----------------------------------------------------------------------
1759    Name: Matthias Blume (blume (at) tti - c (dot) org)
1760    Date: 2004/09/30 10:55:00 CDT
1761    Tag: blume-20040930-version
1762    Description:
1763    
1764    * Moved the "version" magic into its own little library under
1765      src/system/smlnj/internal.  This avoids expensive reconstruction of
1766      a stable src/compiler/core.cm.
1767    
1768    * At the same time, structure CompilerVersion is now known as
1769      structure SMLNJVersion.
1770    
1771    * Arranged for the version tool to NOT kick in when rebuilding the system
1772      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1773      Also, loading the versiontool does not work when rebuilding the system
1774      because CM is not properly initialized at that time.
1775    
1776    ----------------------------------------------------------------------
1777    Name: Matthias Blume (blume (at) tti - c (dot) org)
1778    Date: 2004/09/29 14:00:00 CDT
1779    Tag: blume-20040929-autoversion
1780    Description:
1781    
1782    Implemented some CM magic to have
1783        file src/compiler/TopLevel/main/version.sml
1784    generated automagically.
1785    The version is taken from two files: config/version and config/release.
1786    The first is expected to contain a two-part version number such as 110.49.
1787    The second should contain a single number, but it may be missing.
1788    
1789    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1790    time the version tool is loaded (which is the first time you say CMB.make),
1791    then the tool will increment the value stored in config/release every
1792    time CMB.make is invoked.
1793    
1794    The binfile format is now insensitive to anything beyond the first
1795    two components of a version number, so bumping the release does not render
1796    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1797    during development without invalidating existing binfiles.
1798    
1799    In any case, every CMB.make updates the date information in version.sml.
1800    (This is the date that is printed in the banner.)
1801    
1802    ----------------------------------------------------------------------
1803    Name: Matthias Blume (blume (at) tti - c (dot) org)
1804    Date: 2004/09/28 10:53:00 CDT
1805    Tag: blume-20040928-controls
1806    Description:
1807    
1808    Some cleanup of the controls code.
1809    
1810    ----------------------------------------------------------------------
1811    Name: Matthias Blume (blume (at) tti - c (dot) org)
1812    Date: 2004/09/27 22:08:00 CDT
1813    Tag: blume-20040927-controls
1814    Description:
1815    
1816    Added two pieces of functionality to the Controls interface:
1817    
1818    1.   val save'restore: 'a control -> unit -> unit
1819    
1820       grabs the current value of the control in stage 1 and restores it
1821       in stage 2.
1822    
1823    2.   val set' : 'a control * 'a -> unit -> unit
1824    
1825       stores the given value into the control in stage 2 (i.e., delayed)
1826       but does all error checking in stage 1.
1827       (This is for string controls that need to do parse their argument --
1828        something that might fail.  In some cases, notably in CM, one
1829        already knows the intended argument but wants to delay the actual
1830        assignment until a time when error recovery would be more difficult.)
1831    
1832    Changed the handling of controls in tool arguments to classes "sml" and
1833    "lazysml":
1834       - use Controls.save'restore as a more robust way of restoring the
1835         old value (in particular: without having to re-parse the string)
1836       - use controls to handle the "overload" keyword in the init group
1837         (I believe this change actually fixes a long-standing obscure bug.)
1838    
1839    ----------------------------------------------------------------------
1840    Name: Matthias Blume (blume (at) tti - c (dot) org)
1841    Date: 2004/09/27 17:00:00 CDT
1842    Tag: blume-20040927-lazysml
1843    Description:
1844    
1845    Added a new tool class called "lazysml" to CM's tool chest.  The only
1846    difference to "sml" is that compilation is done with Control.lazysml
1847    set to true.  A source of class "lazysml" is automatically recognized
1848    by a file name suffix of ".lml".
1849    
1850    In addition to the above feature, the original class "sml" now also
1851    supports a tool argument "lazy" which has the same effect.  As a
1852    result, the following three lines are equivalent:
1853    
1854        foo.sml : lazysml
1855        foo.sml : sml (lazy)
1856        foo.sml (lazy)
1857    
1858    The setting goes into effect both during parsing and during
1859    compilation.  The original setting is restored right after parsing and
1860    after compilation, respectively.
1861    
1862    In addition to all the above, there is also a general mechanism to set
1863    ANY of the "controls" that are available at the command line via
1864    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1865    apply as well. (In fact, "lazy" is implemented as a special case of
1866    the general mechanism.)
1867    
1868    The .cm file syntax uses a new keyword tool argument called "with".
1869    There are several ways of indicating the desired settings:
1870    
1871        foo.sml (with:parser.quotations=true)
1872        foo.sml (with:(name:parser.quotations value:true))
1873        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1874        foo.sml (with:(name1=value1 name2=value2 ...))
1875        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1876    
1877        etc.
1878    
1879    Another possible abbreviation is to leave out the =v or value:v part
1880    if the name refers to a boolean control (in which case the value is
1881    taken to be true).  Thus, one could get lazy sml also by saying:
1882    
1883        foo.sml (with:parser.lazy-keyword=true)
1884        foo.sml (with:parser.lazy-keyword)
1885        foo.sml (with:(name:parser.lazy-keyword value:true))
1886        foo.sml (with:(name:parser.lazy-keyword))
1887    
1888    ----------------------------------------------------------------------
1889    Name: Matthias Blume (blume (at) tti - c (dot) org)
1890    Date: 2004/09/24 16:22:00 CDT
1891    Tag: blume-20040924-ppc-long-branch
1892    Description:
1893    
1894    Turned message about "emiting long form of branch" off by default.
1895    Added a control flag to turn it back on when desired.
1896    
1897    ----------------------------------------------------------------------
1898    Name: Matthias Blume (blume (at) tti - c (dot) org)
1899    Date: 2004/09/24 16:05:00 CDT
1900    Tag: blume-20040924-rounding
1901    Description:
1902    
1903    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1904    Melissa O'Neill for providing the code!
1905    
1906    ----------------------------------------------------------------------
1907    Name: Matthias Blume (blume (at) tti - c (dot) org)
1908    Date: 2004/09/23 17:30:00 CDT
1909    Tag: blume-20040923-envvars
1910    Description:
1911    
1912    1. Changed definition of type ControlRegistry.registry_tree to
1913       include control_info (i.e., the name of the controlling environment
1914       variable).
1915    
1916    2. Added command-line flags -e and -E to print the names of environment
1917       variables that can be used to control internal settings.
1918       (This uses the new API mentioned in 1.)
1919    
1920    ----------------------------------------------------------------------
1921    Name: Matthias Blume (blume (at) tti - c (dot) org)
1922    Date: 2004/09/13 16:50:00 CDT
1923    Tag: Release_110_49
1924    Description:
1925    
1926    New working version (110.49).  NEW BOOTFILES!
1927    
1928    ----------------------------------------------------------------------
1929    Name: Matthias Blume
1930    Date: 2004/09/13 16:20:00 CDT
1931    Tag: blume-20040913-config-mlrisc
1932    Description:
1933    
1934    Put target "mlrisc" back into the default list.
1935    (There is no harm in having it, and some users have expressed their
1936    wish to have "mlrisc" included by default.)
1937    
1938    ----------------------------------------------------------------------
1939    Name: John Reppy
1940    Date: 2004/09/13
1941    Tag: jhr-20040913-signals
1942    Description:
1943    
1944    Fixed the signal masking code to properly nest mask/unmask operations
1945    on a per-signal basis.
1946    
1947    ----------------------------------------------------------------------
1948    Name: Matthias Blume (blume (at) tti - c (dot) org)
1949    Date: 2004/09/08 13:20:00 CDT
1950    Tag: blume-20040908-heap-magic
1951    Description:
1952    
1953    Bumped the heap macig number to 0x09082004 to account for the changed
1954    layout of the ML frame under MacOS X.
1955    
1956    ----------------------------------------------------------------------
1957    Name: Allen Leung (leunga (at) reservoir (dot) com)
1958    Date: 2004/09/03 11:26:00 EST
1959    Tag: leunga-20040903-cygwin-install
1960    Description:
1961    
1962       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1963    The Cygwin runtime is turned on by setting the environment
1964    variable SMLNJ_CYGWIN_RUNTIME to 1.
1965    
1966    ----------------------------------------------------------------------
1967    Name: Matthias Blume (blume (at) tti - c (dot) org)
1968    Date: 2004/08/31 17:15:00 CDT
1969    Tag: blume-20040831-core
1970    Description:
1971    
1972    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1973    
1974    ----------------------------------------------------------------------
1975    Name: Matthias Blume (blume (at) tti - c (dot) org)
1976    Date: 2004/08/30 17:55:00 CDT
1977    Tag: blume-20040830-installer
1978    Description:
1979    
1980    Upon request by Johannes Joemann:
1981    
1982    - improved ML code of installer to fall back to coping when renaming
1983      fails (i.e., when source and target are on different file systems);
1984      the code compiles but has yet to be tested in anger
1985    - removed mlrisc from list of default targets (config/targets)
1986    
1987    ----------------------------------------------------------------------
1988    Name: Matthias Blume (blume (at) tti - c (dot) org)
1989    Date: 2004/08/27 17:20:00 CDT
1990    Tag: blume-20040827-ptreql
1991    Description:
1992    
1993    Added ptreql primop to structure InlineT (upon request from Larry
1994    Paulson).
1995    
1996    ----------------------------------------------------------------------
1997    Name: Allen Leung (leunga (at) reservoir (dot) com)
1998    Date: 2004/08/15 21:21:00 EST
1999    Tag: leunga-110_48-udgraph
2000    Description:
2001    
2002    Another bug fix from Carl Hauser:
2003    
2004    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
2005    > 48c48
2006    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
2007    > e::L)
2008    > ---
2009    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
2010    > Without this, any deletion of an edge in an undirected graph does severe
2011    > violence to the graph.
2012    
2013    ----------------------------------------------------------------------
2014    Name: Allen Leung (leunga (at) reservoir (dot) com)
2015    Date: 2004/08/10 23:35:00 EST
2016    Tag: leunga-110_48-ppc
2017    Description:
2018    
2019       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
2020    
2021    ----------------------------------------------------------------------
2022    Name: Matthias Blume (blume (at) tti - c (dot) org)
2023    Date: 2004/08/10 12:00:00 CDT
2024    Tag: Release_110_48
2025    Description:
2026    
2027    New working version (110.48).  NEW BOOTFILES!
2028    
2029    ----------------------------------------------------------------------
2030    Name: Allen Leung (leunga (at) reservoir (dot) com)
2031    Date: 2004/08/09 12:21:00 EST
2032    Tag: leunga-110_47-dijsktra
2033    Description:
2034    
2035    Bug fix from Carl Hauser:
2036    
2037    single_source_shortest_paths in dijkstra.sml was observed to get wrong
2038    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
2039    
2040    The problem is that following the expression A.update(dist,s,Num.zero)
2041    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
2042    
2043    ----------------------------------------------------------------------
2044    Name: Matthias Blume (blume (at) tti - c (dot) org)
2045    Date: 2004/08/06 18:10:00 CDT
2046    Tag: blume-20040806-cmdline
2047    Description:
2048    
2049    Fiddled with handling of command-line options:
2050    
2051      * sml now quits after processing the command line
2052        if -H, -S, -h<n>, or -s<n> appears as the last
2053        command-line argument
2054      * a new option -q terminates the session when encountered on
2055        the command line; subsequent arguments will be ignored
2056      * bug fixes: short (erroneous) arguments are no longer ignored
2057        completely
2058    
2059    ----------------------------------------------------------------------
2060    Name: Allen Leung (leunga (at) reservoir (dot) com)
2061    Date: 2004/08/04 18:17:00 EST
2062    Tag: leunga-110_47-ppc-ibm-asm
2063    Description:
2064    
2065      - Added minimal IBM assembly syntax support for PowerPC.
2066    
2067      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
2068        been altered in the runtime.  We need an automatic way to keep the file
2069        in sync.
2070    
2071    ----------------------------------------------------------------------
2072    Name: Matthias Blume (blume (at) tti - c (dot) org)
2073    Date: 2004/08/04 14:00:00 CDT
2074    Tag: Release_110_47
2075    Description:
2076    
2077    New working version (110.47).  NEW BOOTFILES!
2078    
2079    ----------------------------------------------------------------------
2080    Name: Matthias Blume (blume (at) tti - c (dot) org)
2081    Date: 2004/08/03 14:25:00 CDT
2082    Tag: blume-20040803-callingconv
2083    Description:
2084    
2085    Added low-level support for choosing C calling conventions by
2086    twiddling the type of rawccall.  (See
2087    src/compiler/Semant/types/cproto.sml for details.)
2088    
2089    ----------------------------------------------------------------------
2090    Name: Matthias Blume (blume (at) tti - c (dot) org)
2091    Date: 2004/08/02 15:55:00 CDT
2092    Tag: blume-20040802-backout
2093    Description:
2094    
2095    Backed out of change to win32-filesys.c.  The earlier patch to
2096    get_file_time caused CM to produce files with the wrong time stamp.
2097    
2098    ----------------------------------------------------------------------
2099    Name: Matthias Blume (blume (at) tti - c (dot) org)
2100    Date: 2004/08/02 14:45:00 CDT
2101    Tag: blume-20040802-nlffi-win32
2102    Description:
2103    
2104    Added NLFFI support for Win32, adapted from a patch provided by David
2105    Hansel.  This is currently completely untested.  Also, the issue
2106    concerning stdcall vs. ccall is still unresolved.
2107    
2108    ----------------------------------------------------------------------
2109    Name: Matthias Blume (blume (at) tti - c (dot) org)
2110    Date: 2004/07/30 17:55:00 CDT
2111    Tag: blume-20040730-various
2112    Description:
2113    
2114    Gearing up towards 110.47...
2115    
2116    - various minor bugfixes to ml-nlffigen
2117    - a beginning of a manual for nlffi
2118    
2119    - eliminated 'export name=value' in config/install.sh as this does
2120      not work with certain versions of /bin/sh
2121      (Thanks to David King at Motorola for catching this.)
2122    
2123    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
2124      - added a test for tm==NULL to gmtime.c and localtime.c
2125      - applied patch for incorrect GetFileTime under win32
2126      - toSeconds -> toMilliseconds in Win32/win32-process.sml
2127    
2128    ----------------------------------------------------------------------
2129    Name: Matthias Blume (blume (at) tti - c (dot) org)
2130    Date: 2004/07/21 18:20:00 CDT
2131    Tag: blume-20040721-nlffigen
2132    Description:
2133    
2134    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
2135      for a typedef to an incomplete type, but leave out the "typ" member.
2136      (This is just for consistency.)
2137    - Started to produce what is supposed to become better (i.e., comprehensive)
2138      documentation of what ml-nlffigen does and produces.
2139    
2140    ----------------------------------------------------------------------
2141    Name: Matthias Blume (blume (at) tti - c (dot) org)
2142    Date: 2004/07/14 16:25:00 CDT
2143    Tag: blume-20040714-union
2144    Description:
2145    
2146    Added C_UNION to c-calls/c-types.sml and updated the machinery
2147    (ml-nlffigen, cproto.sml) that conveys C function interface
2148    information to the code generator.
2149    
2150    However, the actual architecture-specific implementation of function
2151    arguments and results that are C unions is still not implemented.
2152    
2153    ----------------------------------------------------------------------
2154    Name: Allen Leung (leunga (at) reservoir (dot) com)
2155    Date: 2004/07/14 14:38:00 EST
2156    Tag: leunga-110_46_1-ppc-lwzu
2157    Description:
2158    
2159        Added these instructions to the PowerPC architecture:
2160        LBZU(X), LHZU(X), LWZU(X),
2161        STWU(X), STFDU, STFSU
2162    
2163        etc...
2164    
2165        Note: I haven't added their instruction encoding into the description.
2166    
2167    ----------------------------------------------------------------------
2168    Name: Allen Leung (leunga (at) reservoir (dot) com)
2169    Date: 2004/07/13 15:04:00 EST
2170    Tag: leunga-110_46_1-ppc-lwarx
2171    Description:
2172    
2173       Added the two instructions LWARX and STWCX to the PowerPC
2174    instruction set.
2175    
2176       A (untested) rewrite of loop-structure.sml.  The old version
2177    is completely broken.
2178    
2179    ----------------------------------------------------------------------
2180    Name: Matthias Blume (blume (at) tti - c (dot) org)
2181    Date: 2004/07/13 13:50:00 CDT
2182    Tag: blume-20040713-nlffi
2183    Description:
2184    
2185    - use paramAlloc to report c-calls with too many arguments
2186      (for PPC version where parameter area is pre-allocated)
2187    - added ccall_maxargspace to machspec (to implement the above)
2188    - made "make" commend in CM's "make" tool configurable
2189    - added option (default: on) for passing the name of the SML/NJ's "bin"
2190      directory to "make"; the call looks like this:
2191    
2192         make <options> SMLNJ_BINDIR=<dir> <target>
2193    
2194      This can be used by the Makefile to, e.g., pick the "right" version
2195      of ml-nlffigen.
2196    - minor code tweaks
2197    
2198    ----------------------------------------------------------------------
2199    Name: Matthias Blume (blume (at) tti - c (dot) org)
2200    Date: 2004/07/12 22:50:00 CDT
2201    Tag: blume-110_46_1-macosx-nlffi
2202    Description:
2203    
2204    NLFFI under Mac OS X now working (sort of).  This is largely untested,
2205    though.
2206    
2207    Note:  1. You have to make a new, clean build of the runtime system.
2208           2. There are new BOOTFILES, you have to use them!
2209              (Doing the bootstrap process yourself would be *very* painful!
2210               If you absolutely have to do it, build the system under
2211               a different architecture and then cross-compile.)
2212    
2213    Version bumped to 110.46.1 to account for runtime data format changes.
2214    
2215    ----------------------------------------------------------------------
2216    Name: Matthias Blume (blume (at) tti - c (dot) org)
2217    Date: 2004/06/18 14:30:00 CDT
2218    Tag: blume-20040618-unix
2219    Description:
2220    
2221    Changed the implementation of structure Unix so that the same stream
2222    is returned every time one of the {text,bin}{In,Out}streamOf functions
2223    is invoked on the same proc.  This is not what the spec currently
2224    says -- although IMO it arguably should.  (See discussion below.)
2225    
2226    ----------------------------------------------------------------------
2227    Name: Matthias Blume (blume (at) tti - c (dot) org)
2228    Date: 2004/06/17 18:15:00 CDT
2229    Tag: Release_110_46
2230    Description:
2231    
2232    New working version (110.46).  NEW BOOTFILES!
2233    
2234    ----------------------------------------------------------------------
2235    Name: Matthias Blume (blume (at) tti - c (dot) org)
2236    Date: 2004/06/17 17:20:00 CDT
2237    Tag: blume-20040617-timer-unix
2238    Description:
2239    
2240    Changed the interface of structures Timer and Unix to match the most
2241    recent Basis spec.
2242    
2243    In the case of Unix there still seems to be an open/weird issue:
2244    
2245       The {text,bin}{In,Out}streamOf functions are supposed to create
2246       fresh streams whenever they are called -- as opposed to have them
2247       return the same stream every time.  This design is supposed to
2248       prevent space leaks caused by proc values hanging on to streams.
2249    
2250       The reap function, on the other hand, is supposed to close the
2251       streams.  This cannot be done without having a handle on the
2252       stream in proc after all...
2253    
2254    I took the liberty to implement the following stopgap solution:
2255    
2256      The proc value hangs on to the most recently created stream(s).
2257      Reap closes those.  If either or both of the two streams hadn't
2258      been created at all yet, then reap will close the corresponding
2259      file descriptors directly.
2260    
2261    PS: I don't understand the original space leak argument anymore.  If
2262    a proc hangs on to the imperative stream, then I/O operations on those
2263    will advance the state of the cached stream and avoid the space leak.
2264    
2265    ----------------------------------------------------------------------
2266    Name: Matthias Blume (blume (at) tti - c (dot) org)
2267    Date: 2004/05/28 16:45:00 CDT
2268    Tag: blume-20040528-basis
2269    Description:
2270    
2271    Added signature PACK_REAL and exported functor PrimIO.
2272    
2273    ----------------------------------------------------------------------
2274    Name: Matthias Blume (blume (at) tti - c (dot) org)
2275    Date: 2004/05/25 16:00:00 CDT
2276    Tag: blume-20040525-group-owner
2277    Description:
2278    
2279    CM now ignores (but still accepts) the "owner" information in group
2280    descriptions.  The owner of a group is its next enclosing
2281    library. Each group must have a unique owner.  (There is a virtual
2282    "toplevel" library that owns groups which are not nested within a real
2283    library.)  Previously, each group had to explicitly declare its owner,
2284    and CM would check that such a declaration is correct.  The new scheme
2285    is to have CM check that for each group there is precisely one owning
2286    library.
2287    
2288    The advantage of the new scheme is that the programmer no longer needs
2289    to maintain the somewhat annoying owner information.  The downside is
2290    that CM cannot enforce the ownership rule across multiple runs of
2291    CM.make.  Fortunately, enclosing the same group in two different
2292    libraries A and B which are not part of the same program does not
2293    cause real problems.
2294    
2295    ----------------------------------------------------------------------
2296    Name: Matthias Blume (blume (at) tti - c (dot) org)
2297    Date: 2004/05/20 16:00:00 CDT
2298    Tag: blume-20040520-win32
2299    Description:
2300    
2301    Made the win32 version work again.  (Strangely, a misplaced comma had
2302    slipped into win32-process.c which prevented the runtime from being
2303    compiled correctly.)
2304    
2305    Also, included a minor addition to ml-build.bat analogous to what was
2306    done in blume-20040519-ml-build.
2307    
2308    ----------------------------------------------------------------------
2309    Name: Matthias Blume (blume (at) tti - c (dot) org)
2310    Date: 2004/05/19 22:10:00 CDT
2311    Tag: blume-20040519-ml-build
2312    Description:
2313    
2314    Arranged for ml-build to clean up after itself a little bit better.
2315    The script generates a temporary SML source file and compiles it using
2316    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
2317    gets rid of those at the end, so they don't accumulate under .cm.
2318    
2319    This required a minor change to install.sh because the name of the
2320    metadata directory (default: .cm) is actually configurable at
2321    installation time.
2322    
2323    ----------------------------------------------------------------------
2324    Name: Matthias Blume (blume (at) tti - c (dot) org)
2325    Date: 2004/05/18 15:50:00 CDT
2326    Tag: blume-20040518-mkreader
2327    Description:
2328    
2329    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
2330    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
2331    
2332    ----------------------------------------------------------------------
2333    Name: Matthias Blume (blume (at) tti - c (dot) org)
2334    Date: 2004/05/11 14:35:00 CDT
2335    Tag: blume-20040511-win32sock
2336    Description:
2337    
2338    Added previously missing support for many socket-related functions
2339    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
2340    for the voluminous patch!
2341    
2342    (I have not tested this patch under win32 yet.)
2343    
2344    Here is David's e-mail:
2345    
2346    Hi,
2347    
2348    Attached to this email you find a diff against sml/nj 110.45
2349    that will enable socket support under Windows.
2350    
2351    To apply the patch (using unix or cygwin)
2352    1) gunzip runtime.diff.gz
2353    2) "cd" into "src/runtime" in the source tree of a fresh
2354       110.45 installation.
2355    3) patch -p 1 < [your/path/to]runtime.diff
2356    
2357    The code compiles fine but has NOT yet been extensively tested.
2358    I only ran a few tests for basic socket client functionality
2359    (which worked fine).  Especially the functions that use ioctl
2360    are not tested at all and might not work (see below).
2361    
2362    I implemented this since we want to move to a newer version of sml/nj
2363    but need socket support in order to use it.  This is the first time I
2364    even had a look at the sml/nj source,  so please review my changes
2365    before making this part of the distribution!  Here are a few issues
2366    that I think might be better for someone to solve who is more
2367    familiar with the sml/nj source (and socket programming):
2368    
2369    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
2370      exception since I could not figure out what the windows equivalent
2371      of these functions is
2372    
2373    - In sockets-osdep.h there are a some #include statements that are
2374      only used in a few files that include sockets-osdep.h
2375    
2376    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
2377      does not process its return value since I don't know how to
2378      report an error upwards.
2379    
2380    - It would probably be good to have a call to WSACleanup() when
2381      the library is unloaded (if there is such a possibility).
2382      Otherwise I think Windows will take care of this automatically
2383      when the process finishes.
2384    
2385    - I used ioctlsocket() as a replacement for ioctl() but I have
2386      no idea if that is actually the proper replacement on Windows.
2387    
2388    - All these issues are marked in the code by "FIXME" comments.
2389    
2390    We use sml/nj extensively in our products and are quite happy
2391    with it.  I hope this contribution will help you.
2392    
2393    Keep up the good work!
2394    
2395    David
2396    
2397    ----------------------------------------------------------------------
2398    Name: Matthias Blume (blume (at) tti - c (dot) org)
2399    Date: 2004/05/11 14:20:00 CDT
2400    Tag: blume-20040511-installml
2401    Description:
2402    
2403    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
2404    the patch.)
2405    
2406    ----------------------------------------------------------------------
2407    Name: Matthias Blume (blume (at) tti - c (dot) org)
2408    Date: 2004/05/11 14:05:00 CDT
2409    Tag: blume-20040511-nlffi-netbsd
2410    Description:
2411    
2412    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
2413    the patch.)
2414    
2415    ----------------------------------------------------------------------
2416    Name: Matthias Blume (blume (at) tti - c (dot) org)
2417    Date: 2004/05/11 12:05:00 CDT
2418    Tag: blume-20040511-exports
2419    Description:
2420    
2421    As per request by Adam Chlipala <adam@hcoop.net>, extended various
2422    export lists in compiler-related .cm-files.
2423    
2424    ----------------------------------------------------------------------
2425    Name: Matthias Blume (blume (at) tti - c (dot) org)
2426    Date: 2004/05/11 11:35:00 CDT
2427    Tag: blume-20040511-allsource
2428    Description:
2429    
2430    The installer now honors the "src-smlnj" target again, although its meaning
2431    has changed from "all sources required for the compiler" to "all sources
2432    the installer knows about".  In other words, if you enable "src-smlnj"
2433    in the "targets" file, then the installer will pull in sources for
2434    everything.  (Notice that this refers to source code only.  Compiled
2435    code is still only installed for modules that were requested explicitly
2436    or which are required for other modules that were requested explicitly.)
2437    
2438    ----------------------------------------------------------------------
2439    Name: Matthias Blume (blume (at) tti - c (dot) org)
2440    Date: 2004/04/23 17:40:00 CDT
2441    Tag: blume-20040423-ieee-scan
2442    Description:
2443    
2444    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
2445    in the exponent calculation we get INF or ZERO (depending on the mantissa
2446    and the sign of the exponent).
2447    
2448    ----------------------------------------------------------------------
2449    Name: Matthias Blume (blume (at) tti - c (dot) org)
2450    Date: 2004/04/23 10:40:00 CDT
2451    Tag: blume-20040423-ml-build
2452    Description:
2453    
2454    The ml-build script now terminates with a non-0 status when something
2455    goes wrong.
2456    
2457    ----------------------------------------------------------------------
2458    Name: Matthias Blume (blume (at) tti - c (dot) org)
2459    Date: 2004/04/22 16:35:00 CDT
2460    Tag: blume-20040422-Option
2461    Description:
2462    
2463    Made exception Option to be the same as exception Option.Option
2464    (as it should be).
2465    
2466    ----------------------------------------------------------------------
2467    Name: Allen Leung (leunga (at) reservoir (dot) com)
2468    Date: 2004/03/19 14:40:00 EST
2469    Tag: leunga-20040319-cygwin-nlffi
2470    Description:
2471    
2472    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
2473    of SML/NJ.  The problem is that
2474    
2475       lib = dlopen(NULL, ...)
2476       f   = dlsym(lib, "malloc");
2477    
2478    does not work on Windows unless we explicitly export symbols
2479    such as 'malloc' during linking.  We fixed this by explicitly
2480    exporting the required symbols with the magic gcc incantation:
2481    
2482        -Wl,--export-all cygwin.def
2483    
2484    where cygwin.def is a file containing all the symbols that
2485    we wish to export.
2486    
2487    I suspect this is a Windows problem and we'll have to
2488    do the same (somehow with windows compilers) when
2489    we build the native win32 version with the system
2490    calls LoadLibrary/GetProcAddress.
2491    
2492    ----------------------------------------------------------------------
2493    Name: Matthias Blume (blume (at) tti - c (dot) org)
2494    Date: 2004/03/04 16:35:00 CST
2495    Tag: blume-20040304-intinf-fmt
2496    Description:
2497    
2498    Fixed problem with IntInf.fmt (sign would show up on the right instead
2499    of on the left for BIN, OCT, and HEX).
2500    
2501    ----------------------------------------------------------------------
2502    Name: Matthias Blume (blume (at) tti - c (dot) org)
2503    Date: 2004/03/04 11:25:00 CST
2504    Tag: blume-20040304-symlinks
2505    Description:
2506    
2507    Fixed problem with installer script (unix only) where bin/ml-yacc and
2508    friends pointed (via symlinks) to absolute locations instead of just
2509    .run-sml.  This was reported by Vesa A Norrman.
2510    
2511    ----------------------------------------------------------------------
2512    Name: Matthias Blume (blume (at) tti - c (dot) org)
2513    Date: 2004/02/13 14:50:00 CST
2514    Tag: Release_110_45
2515    Description:
2516    
2517    New working version (110.45). New bootfiles.
2518    
2519    ----------------------------------------------------------------------
2520    Name: Matthias Blume (blume (at) tti - c (dot) org)
2521    Date: 2004/01/26 15:15:15 CST
2522    Tag: blume-20040126-toplevel
2523    Description:
2524    
2525    Improved handling of exceptions at the interactive toplevel.
2526    
2527    ----------------------------------------------------------------------
2528    Name: Matthias Blume (blume (at) tti - c (dot) org)
2529    Date: 2004/01/26 11:25:00
2530    Tag: blume-20040126-app
2531    Description:
2532    
2533    Type of top-level "app" corrected.
2534    Added code for setting vp_limitPtrMask to Win32-specific runtime.
2535    
2536    ----------------------------------------------------------------------
2537    Name: Matthias Blume (blume (at) tti - c (dot) org)
2538    Date: 2003/11/18 17:10 CST
2539    Tag: blume-20031118-basis-fiddle
2540    Description:
2541    
2542    - changed Timer interface to what might become the spec
2543    - POSIX_FLAGS -> BIT_FLAGS according to spec
2544    - some other minor discrepancies wrt. spec eliminated
2545    
2546    ----------------------------------------------------------------------
2547    Name: Matthias Blume (blume (at) tti - c (dot) org)
2548    Date: 2003/11/06 12:00:00 CST
2549    Tag: Release_110_44
2550    Description:
2551    
2552    New working version (110.44). New bootfiles.
2553    
2554    ----------------------------------------------------------------------
2555    Name: Matthias Blume (blume (at) tti - c (dot) org)
2556    Date: 2003/11/04 11:50:00 CST
2557    Tag: blume-20031104-move-libraries
2558    Description:
2559    
2560    Eliminated the "dont_move_libraries" directive in config/targets.
2561    (The mechanism was broken and could not be fixed easily.  Moreover,
2562    there does not seem to be any reason not to move all libraries into
2563    lib during installation.  I originally implemented this directive as a
2564    backward-compatibility feature when I first introduced the new CM.
2565    Now that things have been stable for a long time and going back to the
2566    old CM is not an option, there is no reason to keep it around.)
2567    
2568    ----------------------------------------------------------------------
2569    Name: Matthias Blume (blume (at) tti - c (dot) org)
2570    Date: 2003/11/03 16:00:00 CST
2571    Tag: blume-20031103-installdir
2572    Description:
2573    
2574    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
2575    Richards for pointing out the problem and providing the solution.)
2576    
2577    ----------------------------------------------------------------------
2578    Name: Matthias Blume (blume (at) tti - c (dot) org)
2579    Date: 2003/10/01 17:05:00 CDT
2580    Tag: blume-20031001-lal-mlrisc
2581    Description:
2582    
2583    MLRISC bug fix from Lal.
2584    
2585    ----------------------------------------------------------------------
2586    Name: Matthias Blume (blume (at) tti - c (dot) org)
2587    Date: 2003/09/30 16:10:00 CDT
2588    Tag: blume-20030930-primio-bat
2589    Description:
2590    
2591    1. Added openVector, nullRd, and nullWr to PRIM_IO.
2592    2. Improved .bat files (for Win32 port) to make things work under Win95.
2593       (thanks to Aaron S. Hawley for this one)
2594    
2595    ----------------------------------------------------------------------
2596    Name: Matthias Blume (blume (at) tti - c (dot) org)
2597    Date: 2003/09/26 16:05:00 CDT
2598    Tag: blume-20030926-wrappriv
2599    Description:
2600    
2601    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
2602    
2603    ----------------------------------------------------------------------
2604    Name: Matthias Blume (blume (at) tti - c (dot) org)
2605    Date: 2003/09/26 15:00:00 CDT
2606    Tag: blume-20030926-110_43_3
2607    Description:
2608    
2609    - additional cleanup
2610    - version number bump, NEW BOOTFILES
2611    
2612    ----------------------------------------------------------------------
2613    Name: Matthias Blume (blume (at) tti - c (dot) org)
2614    Date: 2003/09/26 12:00:00 CDT
2615    Tag: blume-20030926-ppautoload
2616    Description:
2617    
2618    I modified the read-eval-print loop so that the autoloader gets
2619    invoked whenever the prettyprinter tries to look up a symbol that
2620    is not currently defined in the toplevel environment but which
2621    appears in CM's autoload registry.  As a result, we see far fewer of
2622    those ?.Foo.Bar.xxx names in the prettyprinter's output.
2623    
2624    In addition to this I tried to clean up some pieces of the Basis
2625    implementation (e.g., Socket, Word8Array) in order to prevent other
2626    instances of these ?.Foo.Bar.xxx names from being printed.
2627    
2628    The mechanism that picks names for types still needs some work, though.
2629    (Right now it seems that if there is a type A.t which is defined to
2630    be B.u, but B is unavailable at toplevel, then A.t gets printed as
2631    "?.B.u" although the perhaps more sensible solution would be to use
2632    "A.t" in this case.  In other words, the prettyprinter should follow
2633    a chain of DEFtycs not farther than there are corresponding toplevel
2634    names in the current environment.)
2635    
2636    ----------------------------------------------------------------------
2637    Name: Matthias Blume (blume (at) tti - c (dot) org)
2638    Date: 2003/09/24 16:31:00 CDT
2639    Tag: blume-20030924-installer
2640    Description:
2641    
2642    Another installer tweak:  All the ML code for the installer is now
2643    compiled during CMB.make and put into a little library called
2644    $smlnj/installer.cm.  The installation then simply invokes
2645    
2646       sml -m $smlnj/installer.cm
2647    
2648    and everything happens automagically.
2649    
2650    Win32:  ML code senses value of environment variable SMLNJ_HOME.
2651    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
2652            and BINDIR.
2653    
2654    The new scheme guarantees that the ML code responsible for the installation
2655    is in sync with the APIs of the main system.  Also, the installer is
2656    somewhat faster because the installer script is precompiled.
2657    
2658    ----------------------------------------------------------------------
2659    Name: Matthias Blume (blume (at) tti - c (dot) org)
2660    Date: 2003/09/24 15:35:00 CDT
2661    Tag: blume-20030924-synsock
2662    Description:
2663    
2664    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
2665    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
2666    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
2667    implementations of non-blocking operations from CML's Socket
2668    structure.
2669    
2670    ----------------------------------------------------------------------
2671    Name: Matthias Blume (blume (at) tti - c (dot) org)
2672    Date: 2003/09/24 15:10:05 CDT
2673    Tag: blume-20030924-sockets
2674    Description:
2675    
2676    1. Fixed SOCKET API and implementation to match Basis spec.
2677       This required changing the internal representation of sockets to one
2678       that remembers (for each socket file descriptor) whether it is currently
2679       blocking or non-blocking.  This state is maintained lazily (i.e., a system
2680       call is made only if the state actually needs to change).
2681    
2682    2. OS-specific details of sockets were moved into separate files, thus
2683       making it possible to unify the bulk of the socket implementations
2684       between Unix and Win32.
2685    
2686    3. CML's socket API changed accordingly.
2687       (Note that we need to remove non-blocking functions from this API
2688       since they are redundant in the case of CML!)
2689    
2690    4. CML's socket implementation now makes use of non-blocking functions
2691       provided by Basis, thus removing all OS-dependent code from this part
2692       of CML.
2693    
2694    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
2695    
2696    ----------------------------------------------------------------------
2697    Name: Matthias Blume (blume (at) tti - c (dot) org)
2698    Date: 2003/09/22 12:10:00 CDT
2699    Tag: blume-20030922-110_43_2
2700    Description:
2701    
2702    Made a new interim version and bootfiles for developer's bootstrapping
2703    convenience.
2704    
2705       110.43.2 -- NEW BOOTFILES
2706    
2707    ----------------------------------------------------------------------
2708    Name: Matthias Blume (blume (at) tti - c (dot) org)
2709    Date: 2003/09/19 15:55:00 CDT
2710    Tag: blume-20030919-cmdir
2711    Description:
2712    
2713    1. new-install.sh -> install.sh
2714    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
2715    3. tweaked installer so that another name instead of .cm can be chosen
2716       at install time (by setting the CM_DIR_ARC environment variable
2717       during installation); once installation is complete, the name is
2718       fixed
2719    
2720    ----------------------------------------------------------------------
2721    Name: Matthias Blume (blume (at) tti - c (dot) org)
2722    Date: 2003/09/18 16:00:00 CDT
2723    Tag: blume-20030918-110_43_1
2724    Description:
2725    
2726    Made a new interim version and bootfiles for developer's bootstrapping
2727    convenience.
2728    
2729       110.43.1 -- NEW BOOTFILES
2730    
2731    ----------------------------------------------------------------------
2732    Name: Matthias Blume (blume (at) tti - c (dot) org)
2733    Date: 2003/09/18 15:20:00 CDT
2734    Tag: blume-20030918-misc
2735    Description:
2736    
2737    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
2738       this seems to be controversial at the moment) and used those in
2739       Posix.ProcEnv.times.
2740    
2741    2. Added Time.{from,to}Nanoseconds to Time.
2742    
2743    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
2744       For example, fromLargeInt never needs to look at more than 3 "big
2745       digits" to get its 53 bits of precision.
2746    
2747    ----------------------------------------------------------------------
2748    Name: Matthias Blume (blume (at) tti - c (dot) org)
2749    Date: 2003/09/17 16:30:00 CDT
2750    Tag: blume-20030917-real32-slices
2751    Description:
2752    
2753    Added an entry to the primitive environment
2754    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
2755    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
2756    
2757    Removed some of the "magic" constants in real64.sml and replaced them
2758    with code that generates these values from their corresponding
2759    integer counterparts.
2760    
2761    Made all(?) the slice-related changes to the Basis and made everything
2762    compile again...
2763    
2764    ----------------------------------------------------------------------
2765    Name: Matthias Blume (blume (at) tti - c (dot) org)
2766    Date: 2003/09/15 17:45:00 CDT
2767    Tag: blume-20030915-rbase
2768    Description:
2769    
2770    Fixed bug in Real.fromLargeInt.
2771    
2772    ----------------------------------------------------------------------
2773    Name: Matthias Blume (blume (at) tti - c (dot) org)
2774    Date: 2003/09/13 18:11:00 CDT
2775    Tag: blume-20030913-libinstall
2776    Description:
2777    
2778    Minor bugfix in config/libinstall (set anchor with path to
2779    standalone tool after installing it, otherwise libraries that
2780    need ml-lex or ml-yacc won't compile the first time the installer
2781    runs).
2782    
2783    ----------------------------------------------------------------------
2784    Name: Matthias Blume (blume (at) tti - c (dot) org)
2785    Date: 2003/09/12 11:45:00 CDT
2786    Tag: blume-20030912-various
2787    Description:
2788    
2789     - fixed bug in Real.toLargeInt
2790     - fixed bug in Posix.ProcEnv.times
2791     - changed inputLine functions to return an option
2792     - minor installer improvements / bugfixes
2793     - changed default @SMLalloc parameter for x86/celeron to 64k
2794    
2795    ----------------------------------------------------------------------
2796    Name: Matthias Blume (blume (at) tti - c (dot) org)
2797    Date: 2003/09/09 22:00:00 CDT
2798    Tag: Release_110_43
2799    Description:
2800    
2801        New working release 110.43.  New bootfiles.
2802    
2803    ----------------------------------------------------------------------
2804    Name: Matthias Blume (blume (at) tti - c (dot) org)
2805    Date: 2003/09/09 19:20:00 CDT
2806    Tag: blume-20030909-installer
2807    Description:
2808    
2809    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
2810    Modified config/install.bat to take advantage of it.  Also modified
2811    config/install.sh (and called it config/new-install.sh) to take advantage
2812    of it on Unix systems.  (The SML code is (supposed to be) platform-
2813    independent.)
2814    
2815    The installer can now install everything under Win32
2816    as well as under *nix as long as it compiles.
2817    
2818    Other changes:
2819    
2820      - made CML compile again under Win32
2821      - made eXene compile under Win32 (by providing a fake structure UnixSock
2822        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
2823      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
2824        same as type int;  under Win32 it isn't
2825      - fixed some slice-related problems in the win32-specific parts of CML
2826      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
2827        (under Win32, the volume name is case-insensitive, and the
2828        OS.Path code compares volume names for equality)
2829    
2830    ----------------------------------------------------------------------
2831    Name: Matthias Blume (blume (at) tti - c (dot) org)
2832    Date: 2003/09/08 11:55:00 CDT
2833    Tag: blume-20030908-fullpath
2834    Description:
2835    
2836    Made Win32 version of OS.FileSys.fullPath return current directory
2837    when given an empty string.  This is what the spec says, and incidentally,
2838    CM depends on it.  (CM otherwise goes into an infinite loop in certain
2839    cases when presented with the name of a non-existing .cm file.)
2840    
2841    ----------------------------------------------------------------------
2842    Name: Matthias Blume (blume (at) tti - c (dot) org)
2843    Date: 2003/09/04 16:30:00 CDT
2844    Tag: blume-20030905-slices-etc
2845    Description:
2846    
2847      1. Changed interface to vectors and arrays in Basis to match
2848         (draft) Basis spec.
2849      2. Added signatures and implementations of slices according to
2850         Basis spec.
2851      3. Edited source code throughout the system to make it compile again
2852         under 1. and 2.  (In some cases code had to be added to have it
2853         match the new signatures.)
2854      4. MLRISC should be backward-compatible: the copies of the originals
2855         of files that needed to change under 3. were retained, the .cm files
2856         check the compiler version number and use old versions when
2857         appropriate.
2858      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
2859         dirstream -> string option (in accordance with Basis spec).
2860      6. When generating code that counts lines, ml-lex used function
2861         CharVector.foldli, taking advantage of its old interface.
2862         This has been replaced with the corresponding code from
2863         CharVectorSlice.  (html-lex must be re-lexed!)
2864      7. BitArray in smlnj-lib/Util has been extended/modified to match the
2865         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
2866      8. Removed temporary additions (fromInternal, toInternal) from the
2867         (now obsolete) IntInf in smlnj-lib/Util.
2868      9. Cleaned up structure Byte.
2869     10. Added localOffset, scan, and fromString to Date (according to spec).
2870         Cleaned/corrected implementation of Date.
2871         (Still need to check for correctness; implement better canonicalizeDate.)
2872     11. Added "scan" to signature IEEE_REAL.
2873     12. Some improvements to IntInf [in particular: efficiency-hack for
2874         mod and rem when second operand is 2 (for parity checks).]
2875     13. Changed representation of type Time.time, using a single IntInf.int
2876         value counting microseconds.  This considerably simplified the
2877         implementation of structure Time.  We now support negative time
2878         values; scan and fromString handle signs.
2879     14. Functor PrimIO now takes two additional arguments (VectorSlice and
2880         ArraySlice).
2881    
2882    ----------------------------------------------------------------------
2883    Name: Matthias Blume (blume (at) tti - c (dot) org)
2884    Date: 2003/08/28 17:00:00 CDT
2885    Tag: blume-20030828-intinf
2886    Description:
2887    
2888    This is a major update which comes with a version number bump
2889    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
2890    and an implementation of IntInf in the Basis.
2891    
2892    There are a fairly large number of related changes and updates throughout
2893    the system:
2894    
2895    Basis:
2896            - Implemented IntInf.
2897            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
2898            - Added some missing Real64 operations, most notably Real.toLargeInt.
2899            - Added FixedInt as a synonym for Int32.
2900    
2901    compiler:
2902            * Added support for a built-in intinf type.
2903              - literals
2904              - pattern matching
2905              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
2906              - overloading on literals and operations
2907    
2908            This required adding a primitive type intinf, some additional
2909            primops, and implementations for several non-trivial intinf
2910            operations in Core.  (The intinf type is completely abstract
2911            to the compiler; all operations get delegated back to the Core.)
2912    
2913            * Intinf equality is handled by polyequal.  However, the compiler
2914            does not print its usual warning in this case (since polyequal
2915            is the right thing to do there).
2916    
2917            * Improved the organization of structure InlineT.
2918    
2919            * A word about conversion primops:
2920            If conversions involving intinf do not cancel out during
2921            CPS contract, then the compiler must insert calls to Core functions.
2922            Since all core access must be resolved already during the FLINT
2923            translate phase, it would be too late a the time of CPS contract
2924            to add new Core calls.  For this reason, conversion primops
2925            for intinf carry two arguments:  1. the numeric argument that
2926            they are supposed to convert, and 2. the Core function that
2927            can help with this conversion if necessary.  If CPS contract
2928            eliminates a primop, then the associated Core function becomes
2929            dead and goes away.  Intinf conversion primops that do not get
2930            eliminated by CPS contract get rewritten into calls of their
2931            core functions by a separate, new phase.
2932    
2933    interactive system:
2934            - Control.Print.intinfDepth controls max length of intinf constants
2935            being printed. (Analogous to Control.Print.stringDepth.)
2936            - Cleanup in printutil and pputil: got rid of unused stuff and
2937            duplicates; replaced some of the code with code that makes better
2938            use of library functionality.
2939    
2940    CM:
2941            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
2942            are no longer silent.
2943    
2944    CKIT:
2945            Fixed mismatched uses of Int32 and LargeInt.  I always decided
2946            in favor of LargeInt -- which is now the same as IntInf.
2947            CKIT-knowledgable people should check whether this is what's
2948            intended and otherwise change things back to using Int32 or
2949            FixedInt.
2950    
2951    Throughout the code:
2952            Started using IntInf.int literals and built-in operations
2953            (e.g., comparison with 0) where this seems appropriate.
2954    
2955    
2956    ----------------------------------------------------------------------
2957    Name: Dave MacQueen (dbm@cs.uchicago.edu)
2958    Date: 2003/08/13 11:36:00 CDT
2959    Tag: dbm-20030813-mcz-merge1
2960    Description:
2961    
2962    Merging changes from the mcz-branch development branch into trunk.
2963    These changes involve replacement of the emulated old prettyprinter
2964    interface with direct use of the SML/NJ Lib PP library, and fixing
2965    of a couple of bugs (895, 1186) relating to error messages.  A new
2966    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
2967    has been added.
2968    
2969    ----------------------------------------------------------------------
2970    Name: Matthias Blume (blume (at) tti - c (dot) org)
2971    Date: 2003/08/11 15:45:00 CDT
2972    Tag: blume-20030811-windows
2973    Description:
2974    
2975    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
2976    
2977        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
2978    
2979    This patch restores SML/NJ's ability to run under win32.  There are a
2980    number of changes, including fixes for several bugs that had gone
2981    unnoticed until now:
2982    
2983      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
2984        trying to run the win32 version from within cygwin.)
2985    
2986      - There are a number of simple .bat scripts that substitute for their
2987        corresponding Unix shell-scripts.  (See below.)
2988    
2989      - The internals of ml-build have been modified slightly.  The main
2990        difference is that instead of calling ".link-sml" (or link-sml.bat)
2991        using OS.Process.system, the ML process delegates this task back
2992        to the script.  Otherwise problems arise in mixed environments such
2993        as Cygwin where scripts look and work like Unix scripts, but
2994        where OS.Process.system cannot run them.
2995    
2996      - In CM, the srcpath pickler used native pathname syntax -- which
2997        is incorrect in the case of cross-compilation.  The new pickle format
2998        is independent of platform-specific naming conventions.
2999    
3000      - Path configuration files (such as lib/pathconfig) can now choose
3001        between native and standard syntax.  Placing a line of the form
3002    
3003            standard!
3004    
3005        into the file causes all subsequent paths to be interpreted using
3006        CM standard pathname syntax (= Unix conventions); a line
3007    
3008            native!
3009    
3010        switches back to native style.  This was needed so that
3011        path config files can be written portably, see src/system/pathconfig.
3012    
3013      - Runtime system:
3014    
3015          - win32-filesys.c:  get_file_time and set_file_time now
3016            access modification time, not creation time.
3017    
3018          - I/O code made aware of new array representation.
3019    
3020          - Bug fixes in X86.prim.masm.
3021    
3022       - src/system/makeml made aware of win32. (For use under cygwin
3023            and other Unix-environments for windows.)
3024    
3025       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
3026         which caused BinIO.inputAll to fail consistently.
3027    
3028    .bat scripts:
3029    
3030       Windows .bat scripts assume that SMLNJ_HOME is defined.
3031    
3032       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
3033         applications (sml, ml-yacc, ml-lex).
3034       - ml-build.bat: analogous to ml-build.
3035       - config\install.bat:  Analogous to config/install.sh.  This requires
3036         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
3037         (nmake etc. must be on the path, and vcvars32 must have been run.)
3038         Moreover, sources for ml-lex and ml-yacc need to exist under src,
3039         and the bootfile hierarchy must have been unpacked under
3040         sml.boot.x86-win32.
3041         The script is very primitive and does a poor job at error checking.
3042         It only installs the base system, ml-lex, and ml-yacc.  No other
3043         libraries are being installed (i.e., you get only those that
3044         are part of the compiler.)
3045       - link-sml.bat:  analogous to .link-sml, but not currently used
3046    
3047    Unrelated bug fixes:
3048    
3049      - ml-nlffigen now exports structures ST_* corresponding to incomplete
3050        types.
3051      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
3052        otherwise.)
3053    
3054    ----------------------------------------------------------------------
3055    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
3056    Date: 2003/06/17
3057    Tag: macqueen-20030617-bug895
3058    Description:
3059    
3060    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
3061    Tag will be used for new development branch (mcz-branch) for
3062    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
3063    
3064    ----------------------------------------------------------------------
3065    Name: Matthias Blume (blume (at) tti - c (dot) org)
3066    Date: 2003/05/27 16:55:00 CDT
3067    Tag: blume-20030527-polyeq
3068    Description:
3069    
3070    Tried to eliminated most cases of polymorphic equality.
3071    
3072    ----------------------------------------------------------------------
3073    Name: Matthias Blume (blume (at) tti - c (dot) org)
3074    Date: 2003/05/21 17:45:00 CDT
3075    Tag: blume-20030517-complete
3076    Description:
3077    
3078    Two changes:
3079    
3080      1. Added a flag for controlling whether non-exhaustive bindings will
3081         be treated as errors (default is false).
3082      2. Cleaned up the *entire* source tree so that CMB.make goes through
3083         without a single non-exhaustive match- or bind warning.
3084    
3085    ----------------------------------------------------------------------
3086    Name: Matthias Blume (blume (at) tti - c (dot) org)
3087    Date: 2003/05/17 10:20:00 CDT
3088    Tag: blume-20030517-absyn
3089    Description:
3090    
3091    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
3092    
3093       This mainly affects the quality of error messages.  However, some
3094       of the code is now more straightforward than before. (Treatment of
3095       the above four constructs in translate.sml is much simpler than
3096       the "macro-expansion" that was going on before.  Plus, the mach-
3097       compiler no longer gets invoked just to be able to compile an
3098       if-expression.)
3099    
3100    2. The ErrorMsg.Error exception is now caught and absorbed by the
3101       interactive loop.
3102    
3103    ----------------------------------------------------------------------
3104    Name: Allen Leung
3105    Date: 2003/05/16 13:05:00 CDT
3106    Tag: leunga-20030516-cygwin-runtime
3107    Description:
3108    
3109        Ported the runtime system to cygwin, which uses the unix
3110    x86-unix bin files.  Missing/buggy features:
3111    
3112       o getnetbyname, getnetbyaddr: these functions seem to be missing in
3113         the Cygwin library.
3114       o Ctrl-C handling may be flaky.
3115       o Windows system calls and Windows I/O are not supported.
3116    
3117       A new set of binfiles is located at:
3118    
3119         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
3120    
3121       This is only needed for bootstrapping the cygwin version of smlnj.
3122       Other x86 versions can use the existing binfiles.
3123    
3124    ----------------------------------------------------------------------
3125    Name: Matthias Blume
3126    Date: 2003/04/08 15:42:00 CDT
3127    Tag: blume-20030408-listpair
3128    Description:
3129    
3130    1. Added a target 'mlrisc' to installer.
3131    
3132    2. Added missing elements to structure ListPair.
3133    
3134    ----------------------------------------------------------------------
3135    Name: Allen Leung
3136    Date: 2003/01/07 10:40:00 EST
3137    Tag: leunga-20030107-int-rem
3138    Description:
3139    
3140    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
3141    The arguments to the SUBL instruction were swapped.
3142    
3143  ----------------------------------------------------------------------  ----------------------------------------------------------------------
3144  Name: Matthias Blume  Name: Matthias Blume
3145  Date: 2002/12/12 16:25:00 EST  Date: 2002/12/12 16:25:00 EST

Legend:
Removed from v.1294  
changed lines
  Added in v.2603

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