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