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