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