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