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

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