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