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