Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

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