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