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

Legend:
Removed from v.1389  
changed lines
  Added in v.2871

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0