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