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 /doc/trunk/src/changelog/HISTORY.txt
ViewVC logotype

Diff of /doc/trunk/src/changelog/HISTORY.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3998, Thu Dec 18 15:44:07 2014 UTC revision 4461, Sun Oct 1 22:04:30 2017 UTC
# Line 3  Line 3 
3  The Fellowship of SML/NJ  The Fellowship of SML/NJ
4  {version}, {releasedate}:  {version}, {releasedate}:
5    
6    This file documents changes to the Standard ML of New Jersey system since
7    March of 2000 (around Version 110.26).  The change log  primarily covers
8    the compiler, the compilation manager (*CM*), the *MLRISC* library, and
9    the runtime system.  There are occasional entries about other components
10    (_e.g._, the *SML/NJ Library* and *ML-LPT*), but these components have
11    their own change logs that should be consulted.
12    
13  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////
14  This change log is in ASCII doc format.  An HTML version of the  This change log is in ASCII doc format.  An HTML version of the
15  change log can be generated using the command  change log can be generated using the command
16    
17          asciidoc -b html --attribute=source-highlighter=pygments -f HISTORY-html.conf HISTORY.txt          make html
18    
19  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
20  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 41  Line 48 
48      http:/some.website.org/path[]       URL      http:/some.website.org/path[]       URL
49      bugref:[123]                        displays as "#123" with      bugref:[123]                        displays as "#123" with
50                                          a link to the bug report.                                          a link to the bug report.
51        reqref:[123]                        displays as "#123" with a
52                                            link to the feature request.
53      owner:[name,url]                    displays name with URL link.      owner:[name,url]                    displays name with URL link.
54    
55  Sub lists should be bracketed with lines containing just "--".  Sub lists should be bracketed with lines containing just "--".
56  Bulleted list items start with a single dash or one to five  Bulleted list items start with a single dash or one to five
57  asterisks followed by some white space then some text. Numberd  asterisks followed by some white space then some text. Numbered
58  list items begin one to five period characters, followed by  list items begin one to five period characters, followed by
59  some white space then the item text.  some white space then the item text.
60    
# Line 70  Line 79 
79    
80  More information about asciidoc can be found at http://asciidoc.org.  More information about asciidoc can be found at http://asciidoc.org.
81    
82    NOTE: the original HISTORY file was converted to ASCIIDOC using a Perl
83    script.  This script gets the basic structure for entries correct,
84    but there still needs to be a fair bit of editing to add ASCIIDOC
85    markup, fix indentation issues, nested lists, etc.  Working from most
86    recent to oldest, I've edited back to release 110.46 (2004/06/17).
87    
88  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////
89    
90  == Recent updates  //====================================================================
91    //== Recent updates
92    
93    //--------------------------------------------------------------------
94    [2017/10/01]::
95    +
96    Fixed unnumbered bug in ++IntInf.mod++ and ++IntInf.rem++ functions,
97    where the ++Div++ exception was *not* getting raised when both
98    arguments are ++0++.
99    +
100    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
101    
102    //--------------------------------------------------------------------
103    [2017/09/18]::
104    +
105    Removed FLINT primops (and their CPS counterparts) that are not
106    in the +InlineT+ structure and, thus, are never used by the compiler.
107    +
108    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
109    
110    //--------------------------------------------------------------------
111    [2017/09/18]::
112    +
113    Fixed bug bugref:[123] (missing nonexhaustive bind warning). The +mkVBs+
114    function in +FLINT/trans/translate.sml++ was adding a redundant default
115    rule by calling ++ElabUtil.completeMatch++ after a default rule had
116    already been explicitly added to the match for let bindings.
117    +
118    owner:[David MacQueen,http://cs.uchicago.edu/~dbm]
119    
120    //--------------------------------------------------------------------
121    [2017/09/18]::
122    +
123    Fixed bug bugref:[183] (status code returned by sml REPL).  This fix
124    restores the version 110.79 behavior of having +sml foo.sml+ exit with
125    a non-zero status when there is a type-checking error in ++foo.sml++.
126    It also cleans up the error messages associated with +use+ when there
127    is a syntax error.
128    +
129    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
130    
131    //--------------------------------------------------------------------
132    [2017/08/28]::
133    +
134    Fixed bug bugref:[185] (Bring command line help text into parity with man page).
135    Added missing options (++@SMLversion++ and ++@SMLsuffix++) to the
136    help message that is printed for the command "++sml -h++".  Also
137    adjusted the order of options in the help message, and in the man
138    page, so that the orders match.
139    +
140    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
141    
142    //--------------------------------------------------------------------
143    [2017/08/12]::
144    +
145    Changed the way that we test for allocation-space addresses in minor GCs.
146    Instead of using the BIBOP, we now do a pointer range test.  On 32-bit
147    systems, this change results in a small (~0.13%) performance boost, but
148    we expect a bigger impact on 64-bit hardware, where the cost of BIBOP
149    probes will be higher and there are more registers available to hold
150    the nursery bounds.
151    +
152    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
153    
154    //--------------------------------------------------------------------
155    [2017/08/12]::
156    +
157    Fixed some issues in build-literals.c.  These were mostly false
158    positives in the assertions, but there was also a bug in the way
159    that the available space was tracked that could conceivably
160    result in a crash (but was very unlikely).
161    +
162    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
163    
164    //--------------------------------------------------------------------
165    [2017/06/07]::
166    +
167    Updated _arch-n-os script to recognize macOS 10.13 (High Sierra)
168    as a valid target.
169    +
170    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
171    
172    //--------------------------------------------------------------------
173    [2017/05/17]::
174    +
175    Fixed a bug in the way that JSON string values were being printed.
176    The code previously assumed that C-style esaping will work, but
177    that is not true for "\'" (as well as for control and non-ASCII
178    characters).  The new implementation assumes that the string value
179    is UTF-8 and uses the "\\u" escape sequences for characters outside
180    the JSON escapes and printable ASCII characters.
181    +
182    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
183    
184    //====================================================================
185    == Version 110.81; 2017/05/01
186    
187    //--------------------------------------------------------------------
188    [2017/04/28]::
189    +
190    Fixed bug bugref:[129] (Symbolic identifiers are allowed as strids).
191    +
192    owner:[Dave MacQueen,http://cs.uchicago.edu/~dbm]
193    
194    //--------------------------------------------------------------------
195    [2017/04/07]::
196    +
197    Fixed bug bugref:[179] (ml-ulex writing debug messages to stdOut).
198    Both **ml-ulex** and **ml-antlr** now direct their debug and status messages
199    to ++stdErr++ (instead of ++stdOut++).
200    +
201    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
202    
203    //--------------------------------------------------------------------
204    [2017/02/09]::
205    +
206    Linux distributions are starting to require that the stack be marked
207    as non-executable in applications.  Because the runtime system includes
208    assembly code, this marking was not happening.  We've added ++.section++
209    directives to the ++PPC.prim.asm++ and ++X86.prim.asm++ files as
210    per https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart#Patching[].
211    Thanks to Daniel Moerner for reporting this issue and for providing
212    a pointer to the fix.
213    +
214    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
215    
216    //--------------------------------------------------------------------
217    [2016/10/15]::
218    +
219    Added ++--debug++ command-line option to *ml-antlr*.
220    This flag causes <b>ml-antlr</b> to generate debug actions that print
221    the left-hand-side non-terminal of the production.
222    +
223    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
224    
225    //--------------------------------------------------------------------
226    [2016/09/15]::
227    +
228    Working on 64-bit support.  Changes include making code generation
229    dependent on the target word size and abstracting over the BIBOP
230    representation in the runtime system.
231    +
232    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
233    
234    //--------------------------------------------------------------------
235    [2016/09/15]::
236    +
237    Further cleanup of the separation of FLINT from the front-end.
238    Eliminated all references to +ModulePropLists+ (+module-plists.sml+) in
239    the front end and in pickling, and moved ++module-plists++ from
240    ++Semant/modules++ to ++FLINT/trans++.  +ModulePropLists+ is now only used
241    in +FLINT/trans/translate.sml+.
242    +
243    Revision: 4314
244    +
245    Files changed:
246    +
247    --
248    - +compiler/ElabData/modules/modules.sml+  (cleaned up)
249    - +compiler/Elaborator/print/ppmod.sml+ (cleaned up)
250    - +compiler/FLINT/trans/module-plists.sml+ (moved from +Semant/modules+)
251    - +compiler/Semant/modules/instantiate-param.sml+ (deleted)
252    - +compiler/Semant/pickle/pickmod.sml+ (no longer mentions property lists)
253    - +compiler/Semant/pickle/unpickmod.sml+ (ditto)
254    - +compiler/Semant/statenv/prim.sml+
255    - +compiler/Semant/types/tp-var-info.sml+  (deleted)
256    - +compiler/core.cm+  (modified for move of +module-plists.sml+)
257    --
258    +
259    owner:[Dave MacQueen,http://cs.uchicago.edu/~dbm]
260    
261    //--------------------------------------------------------------------
262    [2016/09/14]::
263    +
264    Eliminated dependency of ++PlambdaType++ from the front end by adding a
265    type ++TKind.tkind++ which is a simplified standin for ++PlambdaType.tkind++
266    for use during elaboration. ++TKind.tkind++ values are translated on
267    demand to ++PlambdaType.tkind++ in ++trans/transtypes.sml++. Types still has
268    a ++tycpath++ type but it is defined using ++TKind.tkind++ now. The new structure
269    ++SigPropList++ replaces ++ModulePropLists++
270    (++Semant/modules/module-plists.sml++) for use in ++instantiate.sml++.
271    ++Instantiate++ is now defined directly as a structure so the functor
272    application in ++Semant/modules/instantiate.sml++ no longer exists.
273    +
274    Files changed:
275    +
276    --
277    - +ElabData/basics/debindex.sig+  (moved here from +Elaborator/basics+)
278    - +ElabData/basics/debindex.sml+  (ditto)
279    - +ElabData/basics/sig-plist.sml+ (new)
280    - +ElabData/basics/tkind.sml+     (new)
281    - +ElabData/types/types.sig+
282    - +ElabData/types/types.sml+
283    - +Elaborator/modules/instantiate.sml+
284    - +Elaborator/print/ppmod.sml+
285    - +FLINT/trans/transtkind.sml+    (new)
286    - +FLINT/trans/transtypes.sml+
287    - +TopLevel/interact/evalloop.sml+
288    - +ElabData/elabdata.cm+
289    - +Elaborator/elaborate.cm+
290    - +core.cm+
291    --
292    +
293    owner:[Dave MacQueen,http://cs.uchicago.edu/~dbm]
294    
295    //--------------------------------------------------------------------
296    [2016/09/14]::
297    +
298    Added support for Successor ML record-expression-punning syntax.  For
299    example, one can now define a function ++f++ as
300    +
301    [source,sml]
302    ----------------
303    fun f x = {x}
304    ----------------
305    +
306    which is equivalent to the definition
307    +
308    [source,sml]
309    ----------------
310    fun f x = {x = x}
311    ----------------
312    +
313    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
314    
315    //--------------------------------------------------------------------
316    [2016/09/14]::
317    +
318    Fixed a bug in the parser.  Asterix (`*`) was not allowed as a record label
319    when using the record-pattern-punning syntax.
320    +
321    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
322    
323    //--------------------------------------------------------------------
324    [2016/09/14]::
325    +
326    Added support for `do exp` *Successor ML* syntax.
327    +
328    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
329    
330    //--------------------------------------------------------------------
331    [2016/09/12]::
332    +
333    Fixed bug bugref:[153] (Enabling Successor ML features is delayed).
334    We now use a function ++Control.setSuccML++ to switch to/from *Successor ML*
335    mode in the REPL. The function resets the parser, so the next input will
336    be correctly parsed.  The ++Control.succML++ flag is no longer visibile
337    in the REPL.
338    +
339    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
340    
341    //--------------------------------------------------------------------
342    [2016/09/12]::
343    +
344    Fixed bug bugref:[149] (Datatype replication exposes hidden constructors).
345    Added boolean field +stripped+ to DATATYPE variant of tyckind in
346    +compiler/ElabData/types/types.sml+ with default value +false+.
347    +stripped+ is set to true when a datatype is matched with a simple
348    +type+ spec in signature matching, and datatypes with +stripped+ set
349    to true are disallowed in datatype replications.
350    +
351    Files changed:
352    +
353    --
354    - +compiler/ElabData/types/types.sig+
355    - +compiler/ElabData/types/types.sml+
356    - +compiler/ElabData/types/typesutil.sml+
357    - +compiler/ElabData/types/core-basictypes.sml+
358    - +compiler/Elaborator/types/basictypes.sml+
359    - +compiler/Elaborator/types/eqtypes.sml+
360    - +compiler/Elaborator/modules/evalent.sml+
361    - +compiler/Elaborator/modules/sigmatch.sml+
362    - +compiler/Elaborator/modules/instantiate.sml+
363    - +compiler/Elaborator/print/ppabsyn.sml+
364    - +compiler/Elaborator/print/pptype.sml+
365    - +compiler/Elaborator/elaborate/elabcore.sml+
366    - +compiler/Elaborator/elaborate/elabmod.sml+
367    - +compiler/Elaborator/elaborate/elabtype.sml+
368    - +compiler/Elaborator/elaborate/elabsig.sml+
369    - +compiler/Semant/pickle/pickmod.sml+
370    - +compiler/Semant/pickle/unpickmod.sml+
371    - +compiler/MiscUtil/print/ppobj.sml+
372    - +compiler/FLINT/trans/transtypes.sml+
373    - +compiler/FLINT/trans/pequal.sml+
374    --
375    +
376    owner:[Dave MacQueen,http://cs.uchicago.edu/~dbm]
377    
378    //--------------------------------------------------------------------
379    [2016/08/31]::
380    +
381    Added +%tokentype+ directive to *ml-antlr*; this directive allows users
382    to specify the token datatype externally, which is necessary in order
383    to share a lexer with two different *ml-antlr* parsers.
384    +
385    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
386    
387    //--------------------------------------------------------------------
388    [2016/08/20]::
389    +
390    Change the interface to +AMD64Gen+ in *MLRISC*; the +signBit+ and
391    ++negateSignBit++ callbacks now return an +MLTree.rexp+ (instead of a
392    label).
393    +
394    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
395    
396    //====================================================================
397    == Version 110.80; 2016/08/19
398    
399    //--------------------------------------------------------------------
400    [2016/08/16]::
401    +
402    Fixed bugref:[151] (Error installing from source on Mac OS X).  The fix
403    involves both changes to the +config/install.sh+ script and the
404    +mk.x86-darwin+ makefile.  With this fix, we include the +SDK+ argument
405    to the +/usr/bin/as+ only when the OS version is 10.10 (Yosemite) or
406    later.
407    +
408    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
409    
410    //--------------------------------------------------------------------
411    [2016/08/10]::
412    +
413    Added the proposed +unzipMap+, +unzipMapi+, +find+, and +findi+ functions
414    to the +ListPair+ module.
415    +
416    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
417    
418    //--------------------------------------------------------------------
419    [2016/08/10]::
420    +
421    Added the proposed +mapLeft+, +mapRight+, +appLeft+, and +appRight+
422    functions to the +Either+ module.
423    +
424    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
425    
426    //--------------------------------------------------------------------
427    [2016/08/09]::
428    +
429    Fixed bug bugref:[145] (Internal exception occurs on bogus annotation
430    instead of typechecking diagnostic). Added missing +OVLD_UB+ case in
431    function +failMessage+ in +compiler/Elaborator/types/unify.sml+.
432    +
433    owner:[Dave MacQueen,http://cs.uchicago.edu/~dbm]
434    
435    //--------------------------------------------------------------------
436    [2016/08/04]::
437    +
438    Fixed bug bugref:[166] (Can't install SML/NJ in directories containing
439    spaces).  Thanks to Eugene Sharygin for the patch.
440    +
441    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
442    
443    //--------------------------------------------------------------------
444    [2016/06/21]::
445    +
446    Fixed incorrect dividend sign extension before 32-bit divide in amd64
447    code generator in MLRISC
448    +
449    owner:[Mike Rainey,http://gallium.inria.fr/~rainey/]
450    
451    //--------------------------------------------------------------------
452    [2016/06/16]::
453    +
454    Fixed bug bugref:[150] (Add title to batch script).
455    +
456    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
457    
458    //--------------------------------------------------------------------
459    [2016/05/11]::
460    +
461    Implemented the changes for
462    https://github.com/SMLFamily/BasisLibrary/wiki/2016-001-Add-popCount-to-WORD-signature[
463    Basis Library Proposal 2016-001].  This proposal added the +popCount+
464    function to the +WORD+ signature.
465    +
466    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
467    
468    //--------------------------------------------------------------------
469    [2016/05/03]::
470    +
471    Fixed bug bugref:[156] (sml resumes after SIGSTOP with bogus exception
472    report).  The fix is a bit of a hack: I modified the +non_bt_hdl+
473    function in +evalloop.sml+ to match an +IO.Io+ exception with
474    the appropriate shape for this situation.
475    +
476    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
477    
478    //--------------------------------------------------------------------
479    [2016/04/07]::
480    +
481    Fixed bug bugref:[154] (Return code for ml-ulex when there is an error).
482    +
483    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
484    
485    //--------------------------------------------------------------------
486    [2016/04/07]::
487    +
488    Fixed bug bugref:[155] (Misleading printing of word literals in
489    error messages).
490    +
491    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
492    
493    //--------------------------------------------------------------------
494    [2016/04/02]::
495    +
496    Fixed a bug in the implementation of the ++--ml-lex-mode++ flag for
497    *ml-ulex*.  The ++\h++ escape sequence is supposed to map to the
498    character range ++[\128-\255]++, but did not.
499    +
500    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
501    
502    //--------------------------------------------------------------------
503    [2015/11/09]::
504    +
505    Fixed bug bugref:[147] (Hexadecimal escapes in strings are not supported).
506    We previously did not support Unicode escapes in string literals.  We now
507    do so, [line-through]#with non-ascii codepoints being mapped to the
508    UTF-8 encoding# with escape values in the range 0..255 being mapped to the
509    corresponding 8-bit character.  Values outside that range are flagged
510    as an error.
511    +
512    _Revised August 4, 2016_
513    +
514    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
515    
516    //--------------------------------------------------------------------
517    [2015/10/28]::
518    +
519    Partial fix for the noisy exception-stack traces on the +Error+ exception.
520    The cases that are handled by this change are applying +use+ to a non-existent
521    file and when there are compilation errors in a program being built by
522    +CM.make+.  What remains to be handled is the situation where +CM.make+ is
523    applied to a non-existent file.
524    +
525    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
526    
527    //====================================================================
528    == Version 110.79; 2015/10/04
529    
530    //--------------------------------------------------------------------
531    [2015/10/04]::
532    +
533    Patched +base/compiler/FLINT/clos/closure.sml+ so that *Twelf* will
534    build again.  Fixes bug bugref:[140] (Lookup failure in +closure.sml+
535    when compiling *Twelf*).
536    +
537    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
538    
539    //--------------------------------------------------------------------
540    [2015/09/28]::
541    +
542    Added support for a *Successor ML* tool to CM.  This tool allows one
543    to specify that a source file +fool.sml+ is *Successor ML* source code in the
544    following ways:
545    +
546    --------
547    foo.sml : succ-ml
548    foo.sml : sml (succ-ml)
549    foo.sml (succ-ml)
550    --------
551    +
552    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
553    
554    //--------------------------------------------------------------------
555    [2015/09/28]::
556    +
557    Added the directory +base/old-basis+ to support backward-compatible
558    views of the *Basis Library*.  You can use these by replacing the
559    line
560    +
561    --------
562    $/basis.cm
563    --------
564    +
565    with
566    +
567    --------
568    $/basis-2004.cm
569    --------
570    +
571    in your CM files.
572    
573    //--------------------------------------------------------------------
574    [2015/09/28]::
575    +
576    New implementation of +Date+ structure in the Basis, which fixes bugs
577    bugref:[138] (Incorrect behavior for +Date.fromTimeLocal+) and
578    bugref:[139] (+Date.date+ is broken).  Note that some more thought should
579    be given to the correct semantics of +Date.date+ when dealing with
580    offsets.  For example, should an offset of +23 hours produce the same
581    date as an offset of -1 hours?  Currently our implementation produces
582    different results (by a day) for these two situations.
583    +
584    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
585    
586    //--------------------------------------------------------------------
587    [2015/09/25]::
588    +
589    Implemented the changes for
590    https://github.com/SMLFamily/BasisLibrary/wiki/2015-003-Additional-operations-on-sequences[
591    Basis Library Proposal 2015-003].  This proposal added operations to
592    the following signatures:
593    +
594    [source,sml]
595    ------------
596    signature ARRAY
597    signature LIST
598    signature LIST_PAIR
599    signature MONO_ARRAY
600    signature MONO_VECTOR
601    signature OPTION
602    signature STRING
603    signature TEXT
604    signature VECTOR
605    ------------
606    +
607    and the following structures:
608    +
609    [source,sml]
610    ------------
611    structure Array : ARRAY
612    structure CharArray : MONO_ARRAY
613    structure CharVector : MONO_VECTOR
614    structure List : LIST
615    structure ListPair : LIST_PAIR
616    structure Option : OPTION
617    structure Real64Array : MONO_ARRAY
618    structure Real64Vector : MONO_VECTOR
619    structure String : STRING
620    structure Text : TEXT
621    structure Vector : VECTOR
622    structure Word8Array : MONO_ARRAY
623    structure Word8Vector : MONO_VECTOR
624    ------------
625    +
626    While it is very unlikely that these changes will break existing code, there are
627    a a couple scenarios in which the code might break.  Namely, when use of +open+
628    introduces conflicts and when user code implements one of the affected Basis Library
629    signatures.  Both of these examples occurred in the *SML/NJ* source code; the former
630    in the *ml-yacc* sources and the latter in the *MLRISC* sources.
631    +
632    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
633    
634    //--------------------------------------------------------------------
635    [2015/09/25]::
636    +
637    Added the optional implementations of +PackReal64Big+ and +PackReal64Little+.
638    This addition addresses feature request reqref:[82]
639    (Implementations of +PACK_REAL+ missing).  The implementation
640    uses the approach suggested by
641    https://github.com/msullivan/sml-util/blob/master/libs/pack-real.sml[Michael Sullivan].
642    +
643    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
644    
645    //--------------------------------------------------------------------
646    [2015/09/24]::
647    +
648    Fixed bug bugref:[45] (Compiler bug in specialize phase).  This bug
649    was in +compiler/FLINT/opt/fcontract.sml+ and was the result of a bad
650    interaction between eta contraction and inlining.  As part of the fix,
651    I cleaned up the code in this part of FLINT a bit.
652    +
653    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
654    
655    //--------------------------------------------------------------------
656    [2015/09/21]::
657    Improvements to the error messages produced by the *ml-ulex* lexer generator.
658    +
659    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
660    
661    //--------------------------------------------------------------------
662    [2015/09/21]::
663    Added +Ref+ structure and +REF+ signature to Basis implementation
664    (https://github.com/SMLFamily/BasisLibrary/wiki/2015-007-Addition-of-Ref-module[
665    Basis Library Proposal 2015-007]).
666    +
667    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
668    
669    //--------------------------------------------------------------------
670    [2015/09/21]::
671    Added +Fn+ structure and +FN+ signature to Basis implementation
672    (https://github.com/SMLFamily/BasisLibrary/wiki/2015-005-Addition-of-Fn-module[
673    Basis Library Proposal 2015-005]).
674    +
675    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
676    
677    //--------------------------------------------------------------------
678    [2015/08/22]::
679    +
680    Fixed bug bugref:[136] (Incorrect raising of exceptions in +Real.fmt+
681    and +Time.fmt+).
682    +
683    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
684    
685    //--------------------------------------------------------------------
686    [2015/08/14]::
687    +
688    Added +Either+ structure and +EITHER+ signature to Basis implementation
689    (https://github.com/SMLFamily/BasisLibrary/wiki/2015-002-Addition-of-Either-module[
690    Basis Library Proposal 2015-002]).
691    +
692    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
693    
694    //--------------------------------------------------------------------
695    [2015/07/23]::
696    +
697    Fixed bug bugref:[135] (Fails to build on Linux PowerPC).
698    +
699    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
700    
701    //--------------------------------------------------------------------
702    [2015/07/08]::
703    +
704    Added Linux 4.* kernels to the list of operating systems recognized
705    by the ++.arch-n-opsys++ script (fixes bug bugref:[134]).
706    +
707    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
708    
709    //--------------------------------------------------------------------
710    [2015/06/11]::
711    +
712    Added Mac OS X 10.11 (El Capitan) to the list of operating systems
713    recognized by the ++.arch-n-opsys++ script.
714    +
715    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
716    
717    //--------------------------------------------------------------------
718    [2015/05/27]::
719    +
720    Added support for *Successor ML* lexical extensions.  These can be enabled
721    using the command-line option ++-Cparser.succ-ml=true++ or by the assignment
722    +
723    [source,sml]
724    ------------
725    Control.succML := true;
726    ------------
727    +
728    at the REPL.  The extensions are as follows:
729    +
730    --
731      - Underscore ("++_++") as a separator in numeric literals; __e.g.__, ++123_456++,
732        ++0wxff_ff_ff_f3++, ++123_456.1++, ...
733    
734      - end-of-line comments, which are denoted using ++(*)++.  End-of-line comments
735        properly nest into conventional block comments.  For example, the following
736        block comment is well formed:
737    +
738    [source,sml]
739    ------------
740    (*
741    fun f x = x (*) my identity function *)
742    *)
743    ------------
744    +
745      - binary literals for both integers and words; __e.g.__, ++0b0101_1110++, or
746        ++0wb1101++.
747    --
748    +
749    This change is the beginning of a program to add *Successor ML* feature to *SML/NJ*;
750    See https://github.com/SMLFamily/Proposed-Definition-of-Successor-ML[] for more
751    details.
752    +
753    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
754    
755    //====================================================================
756    == Version 110.78; 2014/12/24
757    
758    //--------------------------------------------------------------------
759    [2014/12/19]::
760    +
761    Major revision of the machinery for overloading resolution for both
762    operators (vars) and literals, now using a common mechanism. This fixes
763    bug bugref:[52] by improving the error message when an overloaded
764    operator is inconsistent with its context. Updated 23 files, including
765    major changes in +overload.sml+, +types.sml+, +unify.sml+, +elabcore.sml+,
766    +typesutil.sml+. The overload declaration is still used in
767    +pervasives.sml+, where the order of the specified instances of an
768    ordering determines the default interpretation (_i.e._, the first one).
769    +
770    The +SCHEME+ and +LITERAL+ forms of tyvars are replaced by a new
771    +OVLD+ form that tracks potential instantiations of the type of the
772    overloaded vars or literals.
773    +
774    owner:[David MacQueen,http://cs.uchicago.edu/~dbm]
775    
776    //--------------------------------------------------------------------
777    [2014/12/18]::
778    +
779    Moved +base/NOTES/HISTORY+ file to +doc/src/changelog/HISTORY.txt+
780    and converted it to http://asciidoc.org[ASCIIDOC] format.  Have also
781    moved the +README+ files from +base/READMES+ to +doc/src/release-notes+.
782    These changes are part of a general effort to rationalize and improve
783    the documentation of the *SML/NJ* system.
784    +
785    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
786    
787  //--------------------------------------------------------------------  //--------------------------------------------------------------------
788  [2014/12/13]::  [2014/12/13]::
789  +  +
790    Preliminary cleanups before changes to overloading
791    +
792  Minor cleanup in +Elaborator/elaborate/elabcore+ (function +elabOVERLOADdec+)  Minor cleanup in +Elaborator/elaborate/elabcore+ (function +elabOVERLOADdec+)
793  and in +ElabData/types/typesutil.sml+ (function  +matchScheme+). Preparing for  and in +ElabData/types/typesutil.sml+ (function  +matchScheme+). Preparing for
794  a new method of handling type checking of overloaded operators. [Note  a new method of handling type checking of overloaded operators. [Note
# Line 122  Line 834 
834    
835    
836  //--------------------------------------------------------------------  //--------------------------------------------------------------------
837    [2014/08/21]::
838    +
839    Created new +doc+ tree in *SML/NJ* repository.  Currently this
840    tree just holds the sources for UNIX-style manual pages for
841    the command-line tools (fixing bug bugref:[35]).  The documentation
842    is written using the http://asciidoc.org[ASCIIDOC] format.  Use
843    the following *svn* command to checkout a copy of the documentation tree:
844    +
845    [source,sh]
846    -----------
847    svn co https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/doc/trunk doc
848    -----------
849    +
850    owner:[John Reppy,http://cs.uchicago.edu/~jhr]
851    
852    //--------------------------------------------------------------------
853  [2014/08/19]::  [2014/08/19]::
854  +  +
855  Compiling the runtime system on *cygwin* was failing because the file  Compiling the runtime system on *cygwin* was failing because the file
# Line 134  Line 862 
862  //--------------------------------------------------------------------  //--------------------------------------------------------------------
863  [2014/08/19]::  [2014/08/19]::
864  +  +
865  Added the actionToString' and repairToString' functions  Added the +actionToString'+ and +repairToString'+ functions
866  to the AntlrRepair structure.  These functions allow one to  to the +AntlrRepair+ structure.  These functions allow one to
867  specialize the printing of tokens based on whether they are  specialize the printing of tokens based on whether they are
868  being added or deleted.  being added or deleted.
869  +  +
# Line 1686  Line 2414 
2414  +  +
2415  The layout is now as follows:  The layout is now as follows:
2416  +  +
2417    toplevel tree name | default repository  [frame="none",width="90%",cols="<2,<3",options="header"]
2418                       | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)  |===========================================================
2419    -------------------+----------------------------------------------------  | toplevel tree name | default repository
2420    config             | $gf/config/trunk                         (using +svn://smlnj-gforge.cs.uchicago.edu/smlnj+ for +$gf+)
2421                       |  +
2422    base               | $gf/sml/trunk  | +config+           | +$gf/config/trunk+
2423                       |  +
2424    smlnj-lib          | $gf/smlnj-lib/trunk  | +base+             | +$gf/sml/trunk+
2425    MLRISC             | $gf/MLRISC/trunk  +
2426                       |  | +smlnj-lib+        | +$gf/smlnj-lib/trunk+
2427    ml-yacc            | $gf/ml-yacc/trunk  | +MLRISC+           | +$gf/MLRISC/trunk+
2428    ml-lex             | $gf/ml-lex/trunk  +
2429    ml-burg            | $gf/ml-burg/trunk  | +ml-yacc+          | +$gf/ml-yacc/trunk+
2430    lexgen             | $gf/lexgen/trunk  | +ml-lex+           | +$gf/ml-lex/trunk+
2431    heap2asm           | $gf/heap2asm/trunk  | +ml-burg+          | +$gf/ml-burg/trunk+
2432                       |  | +lexgen+           | +$gf/lexgen/trunk+
2433    cml                | $gf/cml/trunk  | +heap2asm+         | +$gf/heap2asm/trunk+
   eXene              | $gf/eXene/trunk  
   ckit               | $gf/ckit/trunk  
   nlffi              | $gf/nlffi/trunk  
                      |  
   smlnj-c            | $gf/smlnj-c/trunk  
2434  +  +
2435  In $gf/admin there are a few useful shell scripts for checking out  | +cml+              | +$gf/cml/trunk+
2436    | +eXene+            | +$gf/eXene/trunk+
2437    | +ckit+             | +$gf/ckit/trunk+
2438    | +nlffi+            | +$gf/nlffi/trunk+
2439    +
2440    | +smlnj-c+          | +$gf/smlnj-c/trunk+
2441    |===========================================================
2442    +
2443    In +$gf/admin+ there are a few useful shell scripts for checking out
2444  and maintaining the entire collection of trees:  and maintaining the entire collection of trees:
2445  +  +
2446     admin/checkout-all.sh [dir]  --
2447        -- optionally creates dir and checks out all trees from their  +admin/checkout-all.sh+ [__dir__]::
2448           default repositories; if dir is missing, checkout into .  +
2449     admin/refresh-all.sh [dir]  optionally creates _dir_ and checks out all trees from their
2450        -- looks at all trees (from the above list) in dir (default: .)  default repositories; if _dir_ is missing, checkout into the
2451           and runs "svn update" if the tree exists and is under  current working directory.
2452    +
2453    +admin/refresh-all.sh+ [__dir__]::
2454    looks at all trees (from the above list) in _dir_ (default: .)
2455    and runs "+svn update+" if the tree exists and is under
2456           subversion control;           subversion control;
2457           non-existing or non-subversion trees are skipped           non-existing or non-subversion trees are skipped
2458     admin/stat-all.sh [dir]  +
2459        -- like refresh-all.sh, but runs "svn stat" instead  +admin/stat-all.sh+ [__dir__]::
2460    like +refresh-all.sh+, but runs "+svn stat+" instead
2461    --
2462  +  +
2463  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2464    
# Line 1742  Line 2479 
2479  +  +
2480  I am freezing 110.59.  Changes other than the version-number increase:  I am freezing 110.59.  Changes other than the version-number increase:
2481  +  +
2482    eXene:  --
2483    eXene::
2484  +  +
2485       * committed changes to eXene from Alley Stoughton:  committed changes to eXene from Alley Stoughton:
2486           "fixed bugs in X authorization and resource handling, as well           "fixed bugs in X authorization and resource handling, as well
2487            as in the pile and viewport widgets"            as in the pile and viewport widgets"
2488  +  +
2489    Runtime:  Runtime::
     * fixed linking problem with NetBSD 3.x.  
2490  +  +
2491    Lexgen:    fixed linking problem with *NetBSD 3.x*.
2492      * lexgen tool handles non-ascii characters in 7-bit mode the same  +
2493    Lexgen::
2494    +
2495    --
2496        * *lexgen* tool handles non-ascii characters in 7-bit mode the same
2497        way that *ml-lex* does        way that *ml-lex* does
2498  +  +
2499      * lexgen propagates exceptions the same way that *ml-lex* does      * lexgen propagates exceptions the same way that *ml-lex* does
2500    --
2501  +  +
2502    CML:  CML::
2503      * Fixed a bug in the SyncVar polling functions (iGetPoll,  +
2504        mTakePoll, and mGetPoll) that could lead to livelock.  Fixed a bug in the +SyncVar+ polling functions (+iGetPoll+,
2505    +mTakePoll+, and +mGetPoll+) that could lead to livelock.
2506    --
2507  +  +
2508  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2509    
# Line 1784  Line 2528 
2528  [2006/04/20]::  [2006/04/20]::
2529  +  +
2530  Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)  Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
2531  that enable heap2exec under Linux and FreeBSD.  that enable *heap2exec* under +Linux+ and +FreeBSD+.
2532  +  +
2533  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2534    
# Line 1792  Line 2536 
2536  [2006/04/14]::  [2006/04/14]::
2537  +  +
2538  MLRISC changes:  MLRISC changes:
2539    1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.  +
2540    2) added support for NOTB and XORB operators in pseudo-op expressions  --
2541    3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.  . renamed +GAS_PSEUDO_OPS+ to +AS_PSEUDO_OPS+ and put it in its own file.
2542    4) added support for 64-bit integer literals  . added support for +NOTB+ and +XORB+ operators in pseudo-op expressions
2543    . added +DarwinPseudoOp+ functor that supports Darwin's assembler syntax.
2544    . added support for 64-bit integer literals
2545    --
2546  +  +
2547  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2548    
# Line 1806  Line 2553 
2553  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2554  [2006/03/01]::  [2006/03/01]::
2555  +  +
2556  Incorporated several bugfixes to lexgen.  Compiler now compiles to  Incorporated several bugfixes to *lexgen*.  Compiler now compiles to
2557  fixpoint when using lexgen instead of *ml-lex*.  fixpoint when using lexgen instead of *ml-lex*.
2558  +  +
2559  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1814  Line 2561 
2561  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2562  [2006/02/28]::  [2006/02/28]::
2563  +  +
2564  Removed ml-flex and added lexgen instead, using Aaron Turon's newly  Removed *ml-flex* and added *lexgen* instead, using Aaron Turon's newly
2565  provided tarball.  The generated lexers still have problems.  provided tarball.  The generated lexers still have problems.
2566  +  +
2567  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1822  Line 2569 
2569  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2570  [2006/02/26]::  [2006/02/26]::
2571  +  +
2572  Removed ml-flex' dependency on regexp-lib.cm.  Turned installation  Removed *ml-flex*'s dependency on *regexp-lib.cm*.  Turned installation
2573  of ml-flex on by default.  of *ml-flex* on by default.
2574  +  +
2575  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2576    
2577  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2578  [2006/02/24]::  [2006/02/24]::
2579  +  +
2580  Added ml-flex sources.  Partially integrated, but should not be  Added *ml-flex* sources.  Partially integrated, but should not be
2581  turned on yet!  (Read: leave it commented-out in config/targets!)  turned on yet!  (Read: leave it commented-out in ++config/targets++!)
2582  +  +
2583  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2584    
2585  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2586  [2006/02/23]::  [2006/02/23]::
2587  +  +
2588  Changes to support building on x86-64 systems (using the 32-bit mode).  Changes to support building on *x86-64* systems (using the 32-bit mode).
2589  Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux  Also cleaned up signal handling on *Linux*.  Support for pre-2.2 *Linux*
2590  kernels dropped.  kernels dropped.
2591  +  +
2592  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
# Line 1847  Line 2594 
2594  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2595  [2006/02/22]::  [2006/02/22]::
2596  +  +
2597    CM has changed.  Updated the script for rebuilding the MLRISC generated  *CM* has changed.  Updated the script for rebuilding the *MLRISC* generated
2598  files.  files.
2599  +  +
2600  owner:[Allen Leung]  owner:[Allen Leung]
# Line 1865  Line 2612 
2612  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2613  [2006/02/13]::  [2006/02/13]::
2614  +  +
2615  Changed MLRISC x86 CCalls for partial support of MacOS X ABI.  Changed *MLRISC* x86 +CCalls+ for partial support of *Mac OS X* ABI.
2616  +  +
2617  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2618    
2619  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2620  [2006/02/06]::  [2006/02/06]::
2621  +  +
2622  Changes to support MacOS X on Intel hardware.  The C-calls support in  Changes to support *Mac OS X* on Intel hardware.  The C-calls support in
2623  MLRISC must also be updated to support the MacOS X ABI.  MLRISC must also be updated to support the *Mac OS X* ABI.
2624  +  +
2625  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2626    
2627  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2628  [2005/12/16]::  [2005/12/16]::
2629  +  +
2630  Improved error reporting and handling in CM.  Improved error reporting and handling in *CM*.
2631  +  +
2632  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2633    
2634  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2635  [2005/11/21]::  [2005/11/21]::
2636  +  +
2637  Enabling $/html-lib.cm in config/preloads did not work.  This is fixed  Enabling +$/html-lib.cm+ in +config/preloads+ did not work.  This is fixed
2638  now.  (Since the anchor mapping for html-lib.cm is not yet in effect  now.  (Since the anchor mapping for +html-lib.cm+ is not yet in effect
2639  at the time when config/preloads is processed, the library has to  at the time when +config/preloads+ is processed, the library has to
2640  be referred to by another name.  In 110.57 this would be  be referred to by another name.  In 110.57 this would be
2641  $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm  +$SMLNJ-LIB/HTML/html-lib.cm+.  I arranged for +$smlnj/smlnj-lib/html-lib.cm+
2642  to be valid as well.)  to be valid as well.)
2643  +  +
2644  Thanks to Todd Wilson (Fresno) for alerting me to this issue.  Thanks to Todd Wilson (Fresno) for alerting me to this issue.
# Line 1905  Line 2652 
2652  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2653  [2005/11/19]::  [2005/11/19]::
2654  +  +
2655  Fixed a problem in config/install.sh where it tries to "fish" the  Fixed a problem in +config/install.sh+ where it tries to "fish" the
2656  name of the CM metadata directory from the wrong place (because  name of the *CM* metadata directory from the wrong place (because
2657  the physical location of basis.cm has changed).  Also, corrected the  the physical location of +basis.cm+ has changed).  Also, corrected the
2658  path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out  path anchor for +$/html-lib.cm+.  (Thanks to M. Fluet for pointing out
2659  these problems.)  these problems.)
2660  +  +
2661  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 1928  Line 2675 
2675  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2676  [2005/11/15]::  [2005/11/15]::
2677  +  +
2678  Added simple implementation of Array2.copy.  (Warning: mostly untested.)  Added simple implementation of +Array2.copy+.  (Warning: mostly untested.)
2679  +  +
2680  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2681    
2682  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2683  [2005/11/15]::  [2005/11/15]::
2684  +  +
2685  Reversed change to src/system/smlnj/internals/versiontool.cm.  This  Reversed change to +src/system/smlnj/internals/versiontool.cm+.  This
2686  file gets loaded as a tool -- by the equivalent of CM.make during the  file gets loaded as a tool -- by the equivalent of CM.make during the
2687  run of CMB.make.  Thus, CMB's path configuration is meaningless for  run of +CMB.make+.  Thus, CMB's path configuration is meaningless for
2688  it.  Instead, it has the status of "user code", so it should use  it.  Instead, it has the status of "user code", so it should use
2689  $/basis.cm to refer to the Basis library.  (At least that's true for  +$/basis.cm+ to refer to the Basis library.  (At least that's true for
2690  the purpose of bootstrapping the previous change.  In the future it  the purpose of bootstrapping the previous change.  In the future it
2691  might make sense to have versiontool.cm refer to  might make sense to have +versiontool.cm+ refer to
2692  $smlnj/basis/basis.cm, _i.e._, the version of the Basis that the  +$smlnj/basis/basis.cm+, _i.e._, the version of the Basis that the
2693  compiler itself uses.)  compiler itself uses.)
2694  +  +
2695  Also patched src/system/testml to have it activate those extra anchor  Also patched +src/system/testml+ to have it activate those extra anchor
2696  bindings in config/extrapathconfig.  bindings in +config/extrapathconfig+.
2697  +  +
2698  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2699    
# Line 1956  Line 2703 
2703  This change affects the way the following libraries are tied into  This change affects the way the following libraries are tied into
2704  the system:  the system:
2705  +  +
2706    ....................
2707     $/basis.cm     $/basis.cm
2708     $/smlnj-lib.cm     $/smlnj-lib.cm
2709     $/pp-lib.cm     $/pp-lib.cm
2710     $/controls-lib.cm     $/controls-lib.cm
2711     $/html-lib.cm     $/html-lib.cm
2712     $/ml-yacc-lib.cm     $/ml-yacc-lib.cm
2713    ....................
2714  +  +
2715  These libraries are now internally (as seen from the source code  These libraries are now internally (as seen from the source code
2716  of the implementation itself) known by the following names:  of the implementation itself) known by the following names:
2717  +  +
2718    ....................
2719     $smlnj/basis/basis.cm     $smlnj/basis/basis.cm
2720     $smlnj/smlnj-lib/smlnj-lib.cm     $smlnj/smlnj-lib/smlnj-lib.cm
2721     $smlnj/smlnj-lib/pp-lib.cm     $smlnj/smlnj-lib/pp-lib.cm
2722     $smlnj/smlnj-lib/controls-lib.cm     $smlnj/smlnj-lib/controls-lib.cm
2723     $smlnj/smlnj-lib/html-lib.cm     $smlnj/smlnj-lib/html-lib.cm
2724     $smlnj/ml-yacc/ml-yacc-lib.cm     $smlnj/ml-yacc/ml-yacc-lib.cm
2725    ....................
2726  +  +
2727  This makes it possible to work with code that requires different  This makes it possible to work with code that requires different
2728  versions of these libraries, and which refers to these libraries using  versions of these libraries, and which refers to these libraries using
# Line 1980  Line 2731 
2731  compromising the proper functioning of the compiler itself.  compromising the proper functioning of the compiler itself.
2732  +  +
2733  A similar procedure had already been performed for several of the  A similar procedure had already been performed for several of the
2734  MLRISC libraries that are linked into the compiler.  I did some  *MLRISC* libraries that are linked into the compiler.  I did some
2735  cleanup on this code.  cleanup on this code.
2736  +  +
2737  A new file in the config directory (named extrapathconfig) is  A new file in the config directory (named extrapathconfig) is
# Line 1992  Line 2743 
2743  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2744  [2005/11/07]::  [2005/11/07]::
2745  +  +
2746  Fixed erroneous out-of-bounds test in the "update" function of  Fixed erroneous out-of-bounds test in the "+update+" function of
2747  various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing  various *++ArraySlice++ modules.  (Thanks to Vesa A. Norrman for pointing
2748  out the problem.)  out the problem.)
2749  +  +
2750  Pushed some Basis changes through ML-Lex, CML, and eXene.  Pushed some Basis changes through ML-Lex, CML, and eXene.
# Line 2003  Line 2754 
2754  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2755  [2005/11/07]::  [2005/11/07]::
2756  +  +
2757  Fixed a Basis incompatibility: The depreciated function Substring.all  Fixed a Basis incompatibility: The depreciated function +Substring.all+
2758  was removed (use Substring.full instead).  was removed (use +Substring.full+ instead).
2759  +  +
2760  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2761    
# Line 2018  Line 2769 
2769  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2770  [2005/11/02]::  [2005/11/02]::
2771  +  +
2772    --
2773  * Runtime system bootstrap code now accepts hex digits in BOOTLIST  * Runtime system bootstrap code now accepts hex digits in BOOTLIST
2774    in either upper case or lower case format.    in either upper case or lower case format.
2775  * Pushed changes to names of Pack<N>{Big,Little} structures through  * Pushed changes to names of ++Pack++<__N__>{++Big++,++Little++}
2776      structures through
2777    CML and eXene.    CML and eXene.
2778    --
2779  +  +
2780  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2781    
2782  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2783  [2005/11/02]::  [2005/11/02]::
2784  +  +
2785  Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should  Fixed a Basis incompatibility: ++Pack++<__N__>{++Big++,++Little++}
2786  be called PackWord<N>{Big,Little}.  structures should be named ++PackWord++<__N__>{++Big++,++Little++}.
2787  +  +
2788  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2789    
# Line 2047  Line 2801 
2801  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2802  [2005/10/25]::  [2005/10/25]::
2803  +  +
2804  Added interval sets to utility library (signatures INTERVAL_DOMAIN  Added interval sets to utility library (signatures +INTERVAL_DOMAIN+
2805  and INTERVAL_SET, and functor IntervalSetFn).  and +INTERVAL_SET+, and functor +IntervalSetFn+).
2806  +  +
2807  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2808    
# Line 2063  Line 2817 
2817  [2005/10/14]::  [2005/10/14]::
2818  +  +
2819  Bug fix a bug found by Carl Hauser.  Bug fix a bug found by Carl Hauser.
2820  There was a typo in the reload code for FCMP in x86SpillInstr.sml.  There was a typo in the reload code for +FCMP+ in +x86SpillInstr.sml+.
2821  +  +
2822  owner:[Allen Leung]  owner:[Allen Leung]
2823    
2824  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2825  [2005/10/14]::  [2005/10/14]::
2826  +  +
2827  Removed some debugging code in file x86Asm.sml.  Removed some debugging code in file +x86Asm.sml+.
2828  The function emit_operand was printing out debugging output.  The function emit_operand was printing out debugging output.
2829  +  +
2830  owner:[Allen Leung]  owner:[Allen Leung]
# Line 2078  Line 2832 
2832  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2833  [2005/07/27]::  [2005/07/27]::
2834  +  +
2835  Fixed *ml-lex* to recognize "\r" as representing carriage return.  Fixed *ml-lex* to recognize "+\r+" as representing carriage return.
2836  +  +
2837  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2838    
# Line 2094  Line 2848 
2848  [2005/07/20]::  [2005/07/20]::
2849  +  +
2850  Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)  Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
2851  to support HPUX 11.  to support *HPUX 11*.
2852  +  +
2853  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2854    
2855  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2856  [2005/07/06]::  [2005/07/06]::
2857  +  +
2858  Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.  Changes to the *SML/NJ Library*.  See smlnj-lib/CHANGES for details.
2859  +  +
2860  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]  owner:[John Reppy,http://www.cs.uchicago.edu/~jhr]
2861    
# Line 2109  Line 2863 
2863  [2005/07/06]::  [2005/07/06]::
2864  +  +
2865  Fixed reversed logic for deciding whether to "copy up" or "copy down"  Fixed reversed logic for deciding whether to "copy up" or "copy down"
2866  in *-array-slice.sml.  in *++-array-slice.sml++.
2867  +  +
2868  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2869    
2870  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2871  [2005/05/31]::  [2005/05/31]::
2872  +  +
2873  A typo in the cygwin code fixed.  A typo in the Cygwin code fixed.
2874  +  +
2875  owner:[Allen Leung]  owner:[Allen Leung]
2876    
# Line 2135  Line 2889 
2889  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2890  [2005/05/18]::  [2005/05/18]::
2891  +  +
2892  Added support scripts for Mac OS X PackageMaker and modified  Added support scripts for *Mac OS X PackageMaker* and modified
2893  config/install.sh so that it supports re-dumping a heap image  +config/install.sh+ so that it supports re-dumping a heap image
2894  after customization.  after customization.
2895  +  +
2896  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2154  Line 2908 
2908  Added mechanism for re-creating a heap file for the interactive system  Added mechanism for re-creating a heap file for the interactive system
2909  after configuration variables have been changed.  after configuration variables have been changed.
2910  +  +
2911    [source,sml]
2912    ------------
2913     CM.redump_heap : string -> unit     CM.redump_heap : string -> unit
2914    ------------
2915  +  +
2916  This is much like SMLofNJ.exportML, but starting from the resulting  This is much like +SMLofNJ.exportML+, but starting from the resulting
2917  heap does not return to the caller of CM.redump_heap but  heap does not return to the caller of +CM.redump_heap+ but
2918  restarts the interactive system from scratch.  The original call of  restarts the interactive system from scratch.  The original call of
2919  CM.redump_heap does not return but ends the interactive session.  +CM.redump_heap+ does not return but ends the interactive session.
2920  Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.  Thus, +CM.redump_heap+ is a lot like +SMLofNJ.exportFn+.
2921  +  +
2922  Internally, redump_heap winds the dynamic execution context back to  Internally, +redump_heap+ winds the dynamic execution context back to
2923  the point where the original heap image was created and re-executes  the point where the original heap image was created and re-executes
2924  the heap image generation code in the boot code.  the heap image generation code in the boot code.
2925  +  +
# Line 2171  Line 2928 
2928  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2929  [2005/05/09]::  [2005/05/09]::
2930  +  +
2931  Added a hack to the existing hack known as Word64 to make fromString  Added a hack to the existing hack known as +Word64+ to make +fromString+
2932  behave correctly.  I am still not sure whether Word64.scan will work  behave correctly.  I am still not sure whether +Word64.scan+ will work
2933  as specified with respect to the interaction of radix and prefix.  as specified with respect to the interaction of radix and prefix.
2934  +  +
2935  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2188  Line 2945 
2945  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2946  [2005/05/04]::  [2005/05/04]::
2947  +  +
2948  Fixed a bug in the implementation of div and mod for IntInf.  Fixed a bug in the implementation of +div+ and +mod+ for +IntInf+.
2949  Thanks to Neophytos Michael for reporting the problem.  Thanks to Neophytos Michael for reporting the problem.
2950  +  +
2951  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2196  Line 2953 
2953  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2954  [2005/05/04]::  [2005/05/04]::
2955  +  +
2956  Added a "join" combinator to the ParserComb module in smlnj-lib.cm.  Added the +join+ combinator to the +ParserComb+ module in the
2957    *SML/NJ Library*.
2958  +  +
2959  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2960    
# Line 2204  Line 2962 
2962  [2005/02/28]::  [2005/02/28]::
2963  +  +
2964  Fixed serious bug (brown paper bag variety) in new implementation of  Fixed serious bug (brown paper bag variety) in new implementation of
2965  structure Atom in CML.  (I had accidentally used a mailbox instead of  structure +Atom+ in *CML*.  (I had accidentally used a +mailbox+ instead of
2966  an mvar, leaving the door open for races.)  an +mvar+, leaving the door open for races.)
2967  +  +
2968  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2969    
# Line 2216  Line 2974 
2974  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2975  [2005/02/25]::  [2005/02/25]::
2976  +  +
2977  Brought back SMLofNJ.Susp.  The underlying suspension type is the one  Brought back +SMLofNJ.Susp+.  The underlying suspension type is the one
2978  implemented in Core -- which means that it is the same as the one used  implemented in Core, which means that it is the same as the one used
2979  by the lazy extension.  by the lazy extension.
2980  +  +
2981  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2226  Line 2984 
2984  [2005/02/24]::  [2005/02/24]::
2985  +  +
2986  Simpler and at the same time more general implementation of structure  Simpler and at the same time more general implementation of structure
2987  Atom in CML.  +Atom+ in *CML*.
2988  +  +
2989  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
2990    
2991  //--------------------------------------------------------------------  //--------------------------------------------------------------------
2992  [2005/02/15]::  [2005/02/15]::
2993  +  +
2994  Created new "tools" directory under "src" and moved "TraceDebugProf"  Created new "+tools+" directory under "+src+" and moved "+TraceDebugProf+"
2995  there.  there.
2996  +  +
2997  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2241  Line 2999 
2999  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3000  [2005/02/10]::  [2005/02/10]::
3001  +  +
3002  Implemented "long long" arguments and results for NLFFI.  (Only the  Implemented "+long long+" arguments and results for NLFFI.  (Only the
3003  PPC/MacOS implementation is complete, the other backends still need to  PPC/MacOS implementation is complete, the other backends still need to
3004  be updated.)  be updated.)
3005  +  +
# Line 2267  Line 3025 
3025  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3026  [2005/01/14]::  [2005/01/14]::
3027  +  +
3028  Implemented new (but still experimental) heap2exec facility.  This is  Implemented new (but still experimental) *heap2exec* facility.  This is
3029  tested under Mac OS X and should work under Linux (will test shortly).  tested under Mac OS X and should work under Linux (will test shortly).
3030  It will probably also work on the Sparc (will test some time later).  It will probably also work on the Sparc (will test some time later).
3031    Also removed old "+HACKED_STANDALONE+" hack from runtime
3032  +  +
3033    - removed old "HACKED_STANDALONE" hack from runtime  To be able to test *heap2exec*, uncomment the request for "+heap2asm+" in
 +  
 To be able to test this, uncomment the request for "heap2asm" in  
3034  config/targets prior to installation.  (Notice that this is different  config/targets prior to installation.  (Notice that this is different
3035  from "heap2exec" mentioned below.  Not a typo.)  from "heap2exec" mentioned below.  Not a typo.)
3036  +  +
# Line 2281  Line 3038 
3038  +  +
3039     $ bin/heap2exec heapfile execfile     $ bin/heap2exec heapfile execfile
3040  +  +
3041  (You can put heap2exec on your shell's path.)  (You can put *heap2exec* on your shell's path.)
3042  +  +
3043  For example, run  For example, run
3044  +  +
3045    $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly    $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
3046  +  +
3047  This will create a standalone executable called "mly" which you can  This will create a standalone executable called "+mly+" that you can
3048  then invoke directly as a command.  then invoke directly as a command.
3049  +  +
3050  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2295  Line 3052 
3052  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3053  [2005/01/07]::  [2005/01/07]::
3054  +  +
3055  fixed off-by-one error in ML_STRING macro (globals.c)  fixed off-by-one error in +ML_STRING+ macro (+globals.c+)
3056  +  +
3057  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3058    
# Line 2309  Line 3066 
3066  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3067  [2004/12/21]::  [2004/12/21]::
3068  +  +
3069  * Implemented access to signed and unsigned long long data in NLFFI.  * Implemented access to signed and unsigned long long data in *NLFFI*.
3070  (The parameter-passing part of the picture has not complete. But  (The parameter-passing part of the picture has not complete. But
3071  data structure access seems to work.)  data structure access seems to work.)
3072  +  +
3073  * Fixed CM's incorrect assumption that the PPC is little-endian.  * Fixed *CM*'s incorrect assumption that the PPC is little-endian.
3074    (On the Mac, it is big-endian.  And that's currently our only    (On the Mac, it is big-endian.  And that's currently our only
3075    PPC platform.)    *PPC* platform.)
3076  +  +
3077  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3078    
3079  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3080  [2004/12/21]::  [2004/12/21]::
3081  +  +
3082  Some cleanup in the $c/memory.cm library: separated some concerns by  Some cleanup in the +$c/memory.cm+ library: separated some concerns by
3083  moving allocation code and memory access code each into their own  moving allocation code and memory access code each into their own
3084  files.  files.
3085  +  +
# Line 2331  Line 3088 
3088  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3089  [2004/12/17]::  [2004/12/17]::
3090  +  +
3091      The Unix I/O library of SML/NJ on cygwin does not understand  The Unix I/O library of SML/NJ on Cygwin does not understand
3092  Windows style pathname, so problems arise when +SMLNJ_HOME+ is set  Windows style pathname, so problems arise when +SMLNJ_HOME+ is set
3093  to a Windows style pathname.  _run-sml now converts +SMLNJ_HOME+  to a Windows style pathname.  The _run-sml script now
3094  to a POSIX pathname on cygwin.  converts +SMLNJ_HOME+ to a POSIX pathname on Cygwin.
3095  +  +
3096  owner:[Allen Leung]  owner:[Allen Leung]
3097    
# Line 2344  Line 3101 
3101  Last-minute changes incorporated into 110.52.  Release tag moved.  Last-minute changes incorporated into 110.52.  Release tag moved.
3102  +  +
3103  The changes:  The changes:
3104     - HashString.hashString' -> HashString.hashSubstring     - +HashString.hashString'+ -> +HashString.hashSubstring+
3105     - bug fix in UnivariateStats     - bug fix in +UnivariateStats+
3106  +  +
3107  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3108    
3109  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3110  [2004/12/15]::  [2004/12/15]::
3111  +  +
3112  - HashString.hashString' -> HashString.hashSubstring  - +HashString.hashString' -> HashString.hashSubstring
3113  - corresponding changes in atom.sml  - corresponding changes in +atom.sml+
3114  - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and  - "de-compressed" (aka. un-obfuscated) code for +UnivariateStats+ and
3115    added some comments    added some comments
3116  +  +
3117  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2398  Line 3155 
3155  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3156  [2004/12/01]::  [2004/12/01]::
3157  +  +
3158  smlnj-lib:  Updates to *SML/NJ Library*
3159  +  +
3160    Added function HashString.hashString' for substrings.  --
3161    Hand-inlined CharVector.foldl into HashString (for speed).    * Added function +HashString.hashString'+ for substrings.
3162    Modified implementation of structure Atom to avoid extracting    * Hand-inlined +CharVector.foldl+ into +HashString+ (for speed).
3163      * Modified implementation of structure +Atom+ to avoid extracting
3164    strings from substrings unless necessary.    strings from substrings unless necessary.
3165    --
3166    +
3167    (Also see CHANGES file for smlnj-lib.)    (Also see CHANGES file for smlnj-lib.)
3168  +  +
3169  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2411  Line 3171 
3171  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3172  [2004/11/24]::  [2004/11/24]::
3173  +  +
3174  Made sure CML compiles when Position = Int64.  Made sure *CML* compiles when the +Position+ structure is +Int64+.
3175  +  +
3176  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3177    
3178  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3179  [2004/11/24]::  [2004/11/24]::
3180  +  +
3181  The compiler can now be compiled in a mode that makes structure Position  The compiler can now be compiled in a mode that makes structure +Position+
3182  equal to Int64.  The default, however, is unchanged (Position = Int31)  equal to +Int64+.  The default, however, is unchanged (+Position+ is +Int31+)
3183  for the time being.  for the time being.
3184  +  +
3185  To enable 64-bit positions, use the following procedure:  To enable 64-bit positions, use the following procedure:
3186  +  +
3187  1. Start sml  --
3188  2. Autoload $smlnj/cmb.cm (if not already autoloaded)  . Start sml
3189  3. Type  . Autoload $smlnj/cmb.cm (if not already autoloaded)
3190    . Type
3191    +
3192    [source,sml]
3193    ------------
3194        #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);        #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
3195  4. Run CMB.make() as usual.  ------------
3196    +
3197    . Run +CMB.make()+ as usual.
3198    --
3199  +  +
3200  This is barely tested.  The only test so far was a little SML program  This is barely tested.  The only test so far was a little SML program
3201  counting the number of characters in an 8-gigabyte file by  counting the number of characters in an 8-gigabyte file by
# Line 2443  Line 3210 
3210  [2004/11/23]::  [2004/11/23]::
3211  +  +
3212  Fixed a problem with unhelpful error messages related to problems with  Fixed a problem with unhelpful error messages related to problems with
3213  .cm- or .sml files that appear as part of the sml command line.  +.cm+ or +.sml+ files that appear as part of the *sml* command line.
3214  +  +
3215  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3216    
# Line 2549  Line 3316 
3316      normally does not have to be edited to reflect a version change.      normally does not have to be edited to reflect a version change.
3317  +  +
3318    (As a result, a version change can be done by just editing    (As a result, a version change can be done by just editing
3319     config/version, the rest is now automatic.)  +config/version+, the rest is now automatic.)
3320  +  +
3321  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3322    
# Line 2565  Line 3332 
3332  [2004/10/27]::  [2004/10/27]::
3333  +  +
3334  This is the HISTORY entry for two earlier commits, both concerning  This is the HISTORY entry for two earlier commits, both concerning
3335  the x86 c-calls code in MLRISC:  the *x86* c-calls code in *MLRISC*:
3336  +  +
3337    - added a missing LOAD in the code that deals with struct arguments    - added a missing LOAD in the code that deals with struct arguments
3338    - made sure the caller does not add the wrong number of bytes to the    - made sure the caller does not add the wrong number of bytes to the
# Line 2578  Line 3345 
3345  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3346  [2004/10/24]::  [2004/10/24]::
3347  +  +
3348     John discovered a bug in the syntax of fucomip.  John discovered a bug in the syntax of +fucomip+.
3349     The opcodes FU?COMIP? have been changed to  The opcodes ++FU++?++COMIP++? have been changed to
3350  +  +
3351         fu?comip? %st(i), %st         fu?comip? %st(i), %st
3352  +  +
# Line 2591  Line 3358 
3358  Added a mechanism for getting back-trace information from standalone  Added a mechanism for getting back-trace information from standalone
3359  programs.  Here is how it works:  programs.  Here is how it works:
3360  +  +
3361     1. The part of the program from which you want to get backtrace  --
3362    . The part of the program from which you want to get backtrace
3363        information (usually the whole program) should be wrapped with        information (usually the whole program) should be wrapped with
3364        BackTrace.monitor.  This is a (unit->'a)->'a function, and your    BackTrace.monitor.  This is a +(unit->'a)->'a+ function, and your
3365        main program could be modified from something like        main program could be modified from something like
3366  +  +
3367    [source,sml]
3368    ------------
3369           fun main (pgm, args) = ...           fun main (pgm, args) = ...
3370    ------------
3371  +  +
3372       to       to
3373  +  +
3374    [source,sml]
3375    ------------
3376          fun main (pgm, args) = BackTrace.monitor (fn () => ...)          fun main (pgm, args) = BackTrace.monitor (fn () => ...)
3377    ------------
3378  +  +
3379     2. To be able to access BackTrace.monitor, you have to add  . To be able to access +BackTrace.monitor+, you have to add the
3380        library $smlnj-tdp/plugins.cm to the .cm file that contains your    library +$smlnj-tdp/plugins.cm+ to the +.cm+ file that contains your
3381        main function.        main function.
3382  +  +
3383     3. Remove all compiled code (_i.e._, all the .cm/ subdirectories that  . Remove all compiled code (_i.e._, all the .cm/ subdirectories that
3384        CM might have created in the past for your project).    *CM* might have created in the past for your project).
3385  +  +
3386     4. Build the system using this command line:  . Build the system using this command line:
3387  +  +
3388           ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \  [source,sh]
3389                    myprog.cm MyProg.main myprog  ------------
3390    ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm myprog.cm MyProg.main myprog
3391    ------------
3392  +  +
3393        instead of the usual        instead of the usual
3394  +  +
3395    [source,sh]
3396    ------------
3397           ml-build myprog.cm MyProg.main myprog           ml-build myprog.cm MyProg.main myprog
3398    ------------
3399    --
3400  +  +
3401  I changed a library name:  I changed the library name +$/trace-debug-profile.cm+ to +$smlnj-tdp/plugins.cm+,
3402    and added the following new libraries:
3403    +
3404    --
3405    +$smlnj-tdp/back-trace.cm+::
3406  +  +
3407     $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm  when loaded causes the back-trace plugin to be installed
3408  +  +
3409  New libraries:  +$smlnj-tdp/coverage.cm+::
3410  +  +
3411     $smlnj-tdp/back-trace.cm  when loaded causes the coverage plugin to be installed
3412        -- when loaded causes the back-trace plugin to be installed  --
    $smlnj-tdp/coverage.cm  
       -- when loaded causes the coverage plugin to be installed  
3413  +  +
3414  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3415    
3416  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3417  [2004/10/18]::  [2004/10/18]::
3418  +  +
3419  Added an "obsolete" warning for the "group owner" syntax to CM's parser.  Added an "obsolete" warning for the "group owner" syntax to *CM*'s parser.
3420  +  +
3421  Eliminated group owner specs from .cm files throughout the source tree.  Eliminated group owner specs from +.cm+ files throughout the source tree.
3422  +  +
3423  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3424    
3425  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3426  [2004/10/15]::  [2004/10/15]::
3427  +  +
3428    --
3429  * Test coverage tool added!  * Test coverage tool added!
3430  * Further reorganization of tracing-, debugging-, and profiling support:  * Further reorganization of tracing-, debugging-, and profiling support:
3431  +  +
# Line 2652  Line 3435 
3435      - only the instrumentation mechanism is now left in the compiler proper      - only the instrumentation mechanism is now left in the compiler proper
3436      - BackTrace module is a plugin which is NOT plugged in by default      - BackTrace module is a plugin which is NOT plugged in by default
3437      - Coverage module is another such plugin      - Coverage module is another such plugin
3438    --
3439  +  +
3440  To get the benefits of any of these plugin modules, the code in  To get the benefits of any of these plugin modules, the code in
3441  question must be compiled with tdp instrumentation turned on.  This  question must be compiled with TDP instrumentation turned on.  This
3442  can be done by setting SMLofNJ.Internals.TDP.mode to true.  can be done by setting +SMLofNJ.Internals.TDP.mode+ to +true+.
3443  (The ref cell is also controlled via the -Ctdp.instrument=... switch.)  (The ref cell is also controlled via the +-Ctdp.instrument=...+ switch.)
3444  +  +
3445  Plugins are selected at link time.  (Pre-compiled instrumented code  Plugins are selected at link time.  (Pre-compiled instrumented code
3446  can be re-loaded with different plugins in effect.)  When an  can be re-loaded with different plugins in effect.)  When an
3447  instrumented module is linked, whatever plugins are at that time  instrumented module is linked, whatever plugins are at that time
3448  enabled will come into effect for that module.  enabled will come into effect for that module.
3449  +  +
3450  To enable the back-trace plugin, load library $/trace-debug-profile.cm  To enable the back-trace plugin, load library +$/trace-debug-profile.cm+
3451  and invoke BackTrace.install() (_e.g._, from the interactive prompt).  and invoke +BackTrace.install()+ (_e.g._, from the interactive prompt).
3452  To enable the coverage plugin, load the same library and invoke  To enable the coverage plugin, load the same library and invoke
3453  Coverage.install().  +Coverage.install()+.
3454  +  +
3455  Back-traces are generated automatically on uncaught exceptions and  Back-traces are generated automatically on uncaught exceptions and
3456  when the code in question explicitly invokes BackTrace.trigger().  when the code in question explicitly invokes +BackTrace.trigger()+.
3457  +  +
3458  Coverage (and execution frequency-) information must be queried  Coverage (and execution frequency-) information must be queried
3459  explicitly by calling Coverage.not_covered and Coverage.hot_spots.  explicitly by calling +Coverage.not_covered+ and +Coverage.hot_spots+.
3460  +  +
3461  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3462    
3463  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3464  [2004/10/14]::  [2004/10/14]::
3465  +  +
3466  Snapshot of a significant overhaul of how the trace/debug/profile support  Snapshot of a significant overhaul of how the +trace/debug/profile+ support
3467  is hooked into the system (specifically: Core and SMLofNJ.Internals).  is hooked into the system (specifically: +Core+ and +SMLofNJ.Internals+).
3468  +  +
3469  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3470    
# Line 2839  Line 3623 
3623  +  +
3624  Also changed the handling of controls in tool arguments to classes "+sml+" and  Also changed the handling of controls in tool arguments to classes "+sml+" and
3625  "+lazysml+":  "+lazysml+":
3626    +
3627  --  --
3628     - use +Controls.save'restore+ as a more robust way of restoring the     - use +Controls.save'restore+ as a more robust way of restoring the
3629       old value (in particular: without having to re-parse the string)       old value (in particular: without having to re-parse the string)
# Line 2911  Line 3696 
3696  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3697  [2004/09/24]::  [2004/09/24]::
3698  +  +
3699  Applied patch for setting rounding modes under Mac OS X.  Thanks to  Applied patch for setting rounding modes under *Mac OS X*.  Thanks to
3700  Melissa O'Neill for providing the code!  Melissa O'Neill for providing the code!
3701  +  +
3702  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2919  Line 3704 
3704  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3705  [2004/09/23]::  [2004/09/23]::
3706  +  +
3707  1. Changed definition of type ControlRegistry.registry_tree to  --
3708    . Changed definition of type +ControlRegistry.registry_tree+ to
3709     include control_info (_i.e._, the name of the controlling environment     include control_info (_i.e._, the name of the controlling environment
3710     variable).     variable).
3711  +  +
3712  2. Added command-line flags -e and -E to print the names of environment  . Added command-line flags ++-e++ and ++-E++ to print the names of
3713     variables that can be used to control internal settings.    environment variables that can be used to control internal settings.
3714     (This uses the new API mentioned in 1.)     (This uses the new API mentioned in 1.)
3715    --
3716  +  +
3717  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3718    
# Line 2936  Line 3723 
3723  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3724  [2004/09/13]::  [2004/09/13]::
3725  +  +
3726  Put target "mlrisc" back into the default list.  Put target "+mlrisc+" back into the default list.
3727  (There is no harm in having it, and some users have expressed their  (There is no harm in having it, and some users have expressed their
3728  wish to have "mlrisc" included by default.)  wish to have "+mlrisc+" included by default.)
3729  +  +
3730  owner:[Matthias Blume]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3731    
3732  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3733  [2004/09/13]::  [2004/09/13]::
# Line 2953  Line 3740 
3740  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3741  [2004/09/08]::  [2004/09/08]::
3742  +  +
3743  Bumped the heap magic number to 0x09082004 to account for the changed  Bumped the heap magic number to +0x09082004+ to account for the changed
3744  layout of the ML frame under MacOS X.  layout of the ML frame under *Mac OS X*.
3745  +  +
3746  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3747    
# Line 2979  Line 3766 
3766  +  +
3767  Upon request by Johannes Joemann:  Upon request by Johannes Joemann:
3768  +  +
3769    --
3770  - improved ML code of installer to fall back to coping when renaming  - improved ML code of installer to fall back to coping when renaming
3771    fails (_i.e._, when source and target are on different file systems);    fails (_i.e._, when source and target are on different file systems);
3772    the code compiles but has yet to be tested in anger    the code compiles but has yet to be tested in anger
3773  - removed mlrisc from list of default targets (config/targets)  - removed +mlrisc+ from list of default targets (+config/targets+)
3774    --
3775  +  +
3776  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3777    
3778  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3779  [2004/08/27]::  [2004/08/27]::
3780  +  +
3781  Added ptreql primop to structure InlineT (upon request from Larry  Added +ptreql+ primop to structure +InlineT+ (upon request from Larry
3782  Paulson).  Paulson).
3783  +  +
3784  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 2999  Line 3788 
3788  +  +
3789  Another bug fix from Carl Hauser:  Another bug fix from Carl Hauser:
3790  +  +
3791    ....................
3792  diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml  diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
3793  > 48c48  > 48c48
3794  > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else  > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
3795  > e::L)  > e::L)
3796  > ---  > ---
3797  > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)  > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
3798  > Without this, any deletion of an edge in an undirected graph does severe  ....................
3799  > violence to the graph.  +
3800    Without this, any deletion of an edge in an undirected graph does severe
3801    violence to the graph.
3802  +  +
3803  owner:[Allen Leung]  owner:[Allen Leung]
3804    
3805  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3806  [2004/08/10]::  [2004/08/10]::
3807  +  +
3808     The IBM/MacOS syntax switch on PPC was incorrectly swapped.  The IBM/MacOS syntax switch on *PPC* was incorrectly swapped.
3809  +  +
3810  owner:[Allen Leung]  owner:[Allen Leung]
3811    
# Line 3026  Line 3818 
3818  +  +
3819  Bug fix from Carl Hauser:  Bug fix from Carl Hauser:
3820  +  +
3821  single_source_shortest_paths in dijkstra.sml was observed to get wrong  +single_source_shortest_paths+ in +dijkstra.sml+ was observed to get wrong
3822  answers (by comparing to single_source_shortest_paths in bellman-ford.sml).  answers (by comparing to +single_source_shortest_paths+ in +bellman-ford.sml+).
3823  +  +
3824  The problem is that following the expression A.update(dist,s,Num.zero)  The problem is that following the expression +A.update(dist,s,Num.zero)+
3825  it is necessary to update the priority queue using Q.decreaseWeight(Q,s).  it is necessary to update the priority queue using +Q.decreaseWeight(Q,s)+.
3826  +  +
3827  owner:[Allen Leung]  owner:[Allen Leung]
3828    
# Line 3039  Line 3831 
3831  +  +
3832  Fiddled with handling of command-line options:  Fiddled with handling of command-line options:
3833  +  +
3834    * sml now quits after processing the command line  --
3835      if -H, -S, -h<n>, or -s<n> appears as the last    * *sml* now quits after processing the command line
3836        if ++-H++, ++-S++, ++-h++<__n__>, or ++-s++<__n__> appears as the last
3837      command-line argument      command-line argument
3838    * a new option -q terminates the session when encountered on    * a new option +-q+ terminates the session when encountered on
3839      the command line; subsequent arguments will be ignored      the command line; subsequent arguments will be ignored
3840    * bug fixes: short (erroneous) arguments are no longer ignored    * bug fixes: short (erroneous) arguments are no longer ignored
3841      completely      completely
3842    --
3843  +  +
3844  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3845    
3846  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3847  [2004/08/04]::  [2004/08/04]::
3848  +  +
3849    --
3850    - Added minimal IBM assembly syntax support for PowerPC.    - Added minimal IBM assembly syntax support for PowerPC.
3851  +  +
3852    - Cygwin: manually changed the file cygwin.def.  Some exported symbols have    - Cygwin: manually changed the file +cygwin.def+.  Some exported symbols have
3853      been altered in the runtime.  We need an automatic way to keep the file      been altered in the runtime.  We need an automatic way to keep the file
3854      in sync.      in sync.
3855    --
3856  +  +
3857  owner:[Allen Leung]  owner:[Allen Leung]
3858    
# Line 3069  Line 3865 
3865  +  +
3866  Added low-level support for choosing C calling conventions by  Added low-level support for choosing C calling conventions by
3867  twiddling the type of rawccall.  (See  twiddling the type of rawccall.  (See
3868  src/compiler/Semant/types/cproto.sml for details.)  +src/compiler/Semant/types/cproto.sml+ for details.)
3869  +  +
3870  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3871    
3872  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3873  [2004/08/02]::  [2004/08/02]::
3874  +  +
3875  Backed out of change to win32-filesys.c.  The earlier patch to  Backed out of change to +win32-filesys.c+.  The earlier patch to
3876  get_file_time caused CM to produce files with the wrong time stamp.  +get_file_time+ caused *CM* to produce files with the wrong time stamp.
3877  +  +
3878  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3879    
3880  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3881  [2004/08/02]::  [2004/08/02]::
3882  +  +
3883  Added NLFFI support for *Win32*, adapted from a patch provided by David  Added *NLFFI* support for *Win32*, adapted from a patch provided by David
3884  Hansel.  This is currently completely untested.  Also, the issue  Hansel.  This is currently completely untested.  Also, the issue
3885  concerning stdcall vs. ccall is still unresolved.  concerning stdcall vs. ccall is still unresolved.
3886  +  +
# Line 3095  Line 3891 
3891  +  +
3892  Gearing up towards 110.47...  Gearing up towards 110.47...
3893  +  +
3894  - various minor bugfixes to ml-nlffigen  --
3895  - a beginning of a manual for nlffi  * various minor bugfixes to ml-nlffigen
3896    +
3897    * a beginning of a manual for nlffi
3898  +  +
3899  - eliminated 'export name=value' in config/install.sh as this does  * eliminated 'export name=value' in config/install.sh as this does
3900    not work with certain versions of /bin/sh    not work with certain versions of /bin/sh
3901    (Thanks to David King at Motorola for catching this.)    (Thanks to David King at Motorola for catching this.)
3902  +  +
3903  - several bugfixes provided or suggested by David Hansel at Reactive Systems:  * several bugfixes provided or suggested by David Hansel at Reactive Systems:
3904    - added a test for tm==NULL to gmtime.c and localtime.c    - added a test for +tm==NULL+ to +gmtime.c+ and +localtime.c+
3905    - applied patch for incorrect GetFileTime under win32    - applied patch for incorrect +GetFileTime+ under +win32+
3906    - toSeconds -> toMilliseconds in Win32/win32-process.sml    - +toSeconds+ -> +toMilliseconds+ in +Win32/win32-process.sml+
3907    --
3908  +  +
3909  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3910    
3911  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3912  [2004/07/21]::  [2004/07/21]::
3913  +  +
3914  - Fixed minor issue in ml-nlffigen: Now generate structure T_foo  --
3915    for a typedef to an incomplete type, but leave out the "typ" member.  - Fixed minor issue in *ml-nlffigen*: Now generate structure +T_foo+
3916      for a typedef to an incomplete type, but leave out the "+typ+" member.
3917    (This is just for consistency.)    (This is just for consistency.)
3918  - Started to produce what is supposed to become better (_i.e._, comprehensive)  - Started to produce what is supposed to become better (_i.e._, comprehensive)
3919    documentation of what ml-nlffigen does and produces.    documentation of what *ml-nlffigen* does and produces.
3920    --
3921  +  +
3922  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3923    
3924  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3925  [2004/07/14]::  [2004/07/14]::
3926  +  +
3927  Added C_UNION to c-calls/c-types.sml and updated the machinery  Added +C_UNION+ to +c-calls/c-types.sml+ and updated the machinery
3928  (ml-nlffigen, cproto.sml) that conveys C function interface  (*ml-nlffigen*, +cproto.sml+) that conveys *C* function interface
3929  information to the code generator.  information to the code generator.
3930  +  +
3931  However, the actual architecture-specific implementation of function  However, the actual architecture-specific implementation of function
3932  arguments and results that are C unions is still not implemented.  arguments and results that are *C* unions is still not implemented.
3933  +  +
3934  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3935    
# Line 3136  Line 3937 
3937  [2004/07/14]::  [2004/07/14]::
3938  +  +
3939      Added these instructions to the PowerPC architecture:      Added these instructions to the PowerPC architecture:
3940      LBZU(X), LHZU(X), LWZU(X),      +LBZU+(+X+), +LHZU+(+X+), +LWZU+(+X+),
3941      STWU(X), STFDU, STFSU      +STWU+(+X+), +STFDU+, +STFSU+,
 +  
3942      etc...      etc...
3943  +  +
3944      Note: I haven't added their instruction encoding into the description.      Note: I haven't added their instruction encoding into the description.
# Line 3148  Line 3948 
3948  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3949  [2004/07/13]::  [2004/07/13]::
3950  +  +
3951     Added the two instructions LWARX and STWCX to the PowerPC  Added the two instructions +LWARX+ and +STWCX+ to the PowerPC
3952  instruction set.  instruction set.
3953  +  +
3954     A (untested) rewrite of loop-structure.sml.  The old version  A (untested) rewrite of +loop-structure.sml+.  The old version
3955  is completely broken.  is completely broken.
3956  +  +
3957  owner:[Allen Leung]  owner:[Allen Leung]
# Line 3159  Line 3959 
3959  //--------------------------------------------------------------------  //--------------------------------------------------------------------
3960  [2004/07/13]::  [2004/07/13]::
3961  +  +
3962  - use paramAlloc to report c-calls with too many arguments  --
3963    - use +paramAlloc+ to report c-calls with too many arguments
3964    (for PPC version where parameter area is pre-allocated)    (for PPC version where parameter area is pre-allocated)
3965  - added ccall_maxargspace to machspec (to implement the above)  - added +ccall_maxargspace+ to machspec (to implement the above)
3966  - made "make" commend in CM's "make" tool configurable  - made "make" commend in CM's "make" tool configurable
3967  - added option (default: on) for passing the name of the SML/NJ's "bin"  - added option (default: on) for passing the name of the SML/NJ's "bin"
3968    directory to "make"; the call looks like this:    directory to "make"; the call looks like this:
3969  +  +
3970    [source,sh]
3971    -----------
3972       make <options> SMLNJ_BINDIR=<dir> <target>       make <options> SMLNJ_BINDIR=<dir> <target>
3973    -----------
3974  +  +
3975    This can be used by the Makefile to, _e.g._, pick the "right" version    This can be used by the Makefile to, _e.g._, pick the "right" version
3976    of ml-nlffigen.  of *ml-nlffigen*.
3977  - minor code tweaks  - minor code tweaks
3978    --
3979  +  +
3980  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
3981    
# Line 3184  Line 3989 
3989  NLFFI under Mac OS X now working (sort of).  This is largely untested,  NLFFI under Mac OS X now working (sort of).  This is largely untested,
3990  though.  though.
3991  +  +
3992  Note:  1. You have to make a new, clean build of the runtime system.  .Note:
3993         2. There are new BOOTFILES, you have to use them!  --
3994      . You have to make a new, clean build of the runtime system.
3995      . There are new BOOTFILES, you have to use them!
3996            (Doing the bootstrap process yourself would be *very* painful!            (Doing the bootstrap process yourself would be *very* painful!
3997             If you absolutely have to do it, build the system under             If you absolutely have to do it, build the system under
3998             a different architecture and then cross-compile.)             a different architecture and then cross-compile.)
3999    --
4000  +  +
4001  Version bumped to 110.46.1 to account for runtime data format changes.  Version bumped to 110.46.1 to account for runtime data format changes.
4002  +  +
# Line 3197  Line 4005 
4005  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4006  [2004/06/18]::  [2004/06/18]::
4007  +  +
4008  Changed the implementation of structure Unix so that the same stream  Changed the implementation of structure +Unix+ so that the same stream
4009  is returned every time one of the {text,bin}{In,Out}streamOf functions  is returned every time one of the {++text++,++bin++}{++In++,++Out++}++streamOf++
4010  is invoked on the same proc.  This is not what the spec currently  functions is invoked on the same proc.  This is not what the spec currently
4011  says -- although IMO it arguably should.  (See discussion below.)  says -- although IMO it arguably should.  (See discussion below.)
4012  +  +
4013  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
# Line 3241  Line 4049 
4049  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4050  [2004/05/28]::  [2004/05/28]::
4051  +  +
4052  Added signature PACK_REAL and exported functor PrimIO.  Added signature +PACK_REAL+ and exported functor +PrimIO+.
4053  +  +
4054  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
4055    
# Line 3810  Line 4618 
4618  +  +
4619  This is a major update which comes with a version number bump  This is a major update which comes with a version number bump
4620  (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,  (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
4621  and an implementation of IntInf in the Basis.  and an implementation of +IntInf+ in the Basis.
4622  +  
4623  There are a fairly large number of related changes and updates throughout  There are a fairly large number of related changes and updates throughout
4624  the system:  the system:
4625  +  +
# Line 3823  Line 4631 
4631  +  +
4632  compiler:  compiler:
4633          * Added support for a built-in intinf type.          * Added support for a built-in intinf type.
4634            --
4635            - literals            - literals
4636            - pattern matching            - pattern matching
4637            - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)            - conversion shortcuts (+Int32.fromLarge o Int.toLarge+ etc.)
4638            - overloading on literals and operations            - overloading on literals and operations
4639  +          --
4640          This required adding a primitive type intinf, some additional          This required adding a primitive type intinf, some additional
4641          primops, and implementations for several non-trivial intinf          primops, and implementations for several non-trivial intinf
4642          operations in Core.  (The intinf type is completely abstract          operations in Core.  (The intinf type is completely abstract
# Line 3837  Line 4646 
4646          does not print its usual warning in this case (since polyequal          does not print its usual warning in this case (since polyequal
4647          is the right thing to do there).          is the right thing to do there).
4648  +  +
4649          * Improved the organization of structure InlineT.          * Improved the organization of structure +InlineT+.
4650  +  +
4651          * A word about conversion primops:          * A word about conversion primops:
4652          If conversions involving intinf do not cancel out during          If conversions involving intinf do not cancel out during
# Line 3901  Line 4710 
4710  number of changes, including fixes for several bugs that had gone  number of changes, including fixes for several bugs that had gone
4711  unnoticed until now:  unnoticed until now:
4712  +  +
4713    - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when  --
4714    * uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
4715      trying to run the win32 version from within cygwin.)      trying to run the win32 version from within cygwin.)
4716  +  
4717    - There are a number of simple .bat scripts that substitute for their  * There are a number of simple .bat scripts that substitute for their
4718      corresponding Unix shell-scripts.  (See below.)      corresponding Unix shell-scripts.  (See below.)
4719  +  
4720    - The internals of *ml-build* have been modified slightly.  The main  * The internals of *ml-build* have been modified slightly.  The main
4721      difference is that instead of calling ".link-sml" (or link-sml.bat)      difference is that instead of calling ".link-sml" (or link-sml.bat)
4722      using OS.Process.system, the ML process delegates this task back    using +OS.Process.system+, the ML process delegates this task back
4723      to the script.  Otherwise problems arise in mixed environments such      to the script.  Otherwise problems arise in mixed environments such
4724      as Cygwin where scripts look and work like Unix scripts, but      as Cygwin where scripts look and work like Unix scripts, but
4725      where OS.Process.system cannot run them.      where OS.Process.system cannot run them.
4726  +  
4727    - In CM, the srcpath pickler used native pathname syntax -- which  * In CM, the srcpath pickler used native pathname syntax -- which
4728      is incorrect in the case of cross-compilation.  The new pickle format      is incorrect in the case of cross-compilation.  The new pickle format
4729      is independent of platform-specific naming conventions.      is independent of platform-specific naming conventions.
4730  +  
4731    - Path configuration files (such as lib/pathconfig) can now choose  * Path configuration files (such as lib/pathconfig) can now choose
4732      between native and standard syntax.  Placing a line of the form      between native and standard syntax.  Placing a line of the form
4733  +  +
4734          standard!          standard!
# Line 3930  Line 4740 
4740  +  +
4741      switches back to native style.  This was needed so that      switches back to native style.  This was needed so that
4742      path config files can be written portably, see src/system/pathconfig.      path config files can be written portably, see src/system/pathconfig.
4743    
4744    * Runtime system:
4745  +  +
4746    - Runtime system:    - ++win32-filesys.c++:  +get_file_time+ and +set_file_time+ now
 +  
       - win32-filesys.c:  get_file_time and set_file_time now  
4747          access modification time, not creation time.          access modification time, not creation time.
4748  +  
4749        - I/O code made aware of new array representation.        - I/O code made aware of new array representation.
4750  +  
4751        - Bug fixes in X86.prim.masm.    - Bug fixes in +X86.prim.masm+.
4752  +  
4753     - src/system/makeml made aware of win32. (For use under cygwin    - +src/system/makeml+ made aware of win32. (For use under cygwin
4754          and other Unix-environments for windows.)          and other Unix-environments for windows.)
4755  +  
4756     - In Basis, fixed off-by-one error in win32-io.sml (function vecF)     - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
4757       which caused BinIO.inputAll to fail consistently.       which caused BinIO.inputAll to fail consistently.
4758  +  
4759  .bat scripts:  * .bat scripts:
4760  +  +
4761     Windows .bat scripts assume that +SMLNJ_HOME+ is defined.     Windows .bat scripts assume that +SMLNJ_HOME+ is defined.
4762  +  +
# Line 3964  Line 4774 
4774       libraries are being installed (_i.e._, you get only those that       libraries are being installed (_i.e._, you get only those that
4775       are part of the compiler.)       are part of the compiler.)
4776     - link-sml.bat:  analogous to .link-sml, but not currently used     - link-sml.bat:  analogous to .link-sml, but not currently used
4777  +  
4778  Unrelated bug fixes:  * Unrelated bug fixes:
4779  +  
4780    - ml-nlffigen now exports structures ST_* corresponding to incomplete    - ml-nlffigen now exports structures ST_* corresponding to incomplete
4781      types.      types.
4782    - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile    - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
4783      otherwise.)      otherwise.)
4784    --
4785  +  +
4786  owner:[Matthias Blume,http://www.tti-c.org/blume/]  owner:[Matthias Blume,http://www.tti-c.org/blume/]
4787    
# Line 4024  Line 4835 
4835  +  +
4836      Ported the runtime system to cygwin, which uses the unix      Ported the runtime system to cygwin, which uses the unix
4837  x86-unix bin files.  Missing/buggy features:  x86-unix bin files.  Missing/buggy features:
4838  +  --
4839     o getnetbyname, getnetbyaddr: these functions seem to be missing in     * getnetbyname, getnetbyaddr: these functions seem to be missing in
4840       the Cygwin library.       the Cygwin library.
4841     o Ctrl-C handling may be flaky.     * Ctrl-C handling may be flaky.
4842     o Windows system calls and Windows I/O are not supported.     * Windows system calls and Windows I/O are not supported.
4843  +  --
4844     A new set of binfiles is located at:     A new set of binfiles is located at:
4845  +  +
4846       http://www.dorsai.org/~leunga/boot.x86-unix.tgz  http://www.dorsai.org/~leunga/boot.x86-unix.tgz[]
4847  +  +
4848     This is only needed for bootstrapping the cygwin version of smlnj.     This is only needed for bootstrapping the cygwin version of smlnj.
4849     Other x86 versions can use the existing binfiles.     Other x86 versions can use the existing binfiles.
# Line 4042  Line 4853 
4853  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4854  [2003/04/08]::  [2003/04/08]::
4855  +  +
4856    --
4857  1. Added a target 'mlrisc' to installer.  1. Added a target 'mlrisc' to installer.
4858  +  +
4859  2. Added missing elements to structure ListPair.  2. Added missing elements to structure ListPair.
4860    --
4861  +  +
4862  owner:[Matthias Blume]  owner:[Matthias Blume]
4863    
# Line 4155  Line 4968 
4968  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4969  [2002/06/25]::  [2002/06/25]::
4970  +  +
4971  Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point  Fixed a bug in translation of +INLMAX+ (and +INLMIN+) for the floating-point
4972  case.  (The sense of the +isNaN+ test was reversed -- which made min and  case.  (The sense of the +isNaN+ test was reversed -- which made +min+ and
4973  max always return their first argument.)  +max+ always return their first argument.)
4974  +  +
4975  owner:[Matthias Blume]  owner:[Matthias Blume]
4976    
# Line 4171  Line 4984 
4984  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4985  [2002/06/10]::  [2002/06/10]::
4986  +  +
4987  I back-ported my implementation of IEEEReal.fromString from the  I back-ported my implementation of +IEEEReal.fromString+ from the
4988  idlbasis-devel branch so that we can test it.  idlbasis-devel branch so that we can test it.
4989  +  +
4990  Another small change is that ppDec tries to give more information  Another small change is that ppDec tries to give more information
# Line 4185  Line 4998 
4998  //--------------------------------------------------------------------  //--------------------------------------------------------------------
4999  [2002/05/31]::  [2002/05/31]::
5000  +  +
5001  Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by  Resurrected +SMLofNJ.Internals.BTrace.mode+.  (It accidentally fell by
5002  the wayside when I switched over to using Controls everywhere.)  the wayside when I switched over to using Controls everywhere.)
5003  +  +
5004  owner:[Matthias Blume]  owner:[Matthias Blume]
# Line 4237  Line 5050 
5050  //--------------------------------------------------------------------  //--------------------------------------------------------------------
5051  [2002/05/20]::  [2002/05/20]::
5052  +  +
5053  - Added ControlUtil structure to control-lib.cm.  - Added +ControlUtil+ structure to +control-lib.cm+.
5054  - Use it throughout.  - Use it throughout.
5055  - Used Controls facility to define MLRISC controls (as opposed to  - Used Controls facility to define *MLRISC* controls (as opposed to
5056    registering MLRISC control ref cells with Controls after the fact)    registering *MLRISC* control ref cells with Controls after the fact)
5057  - Fixed messed-up controls priorities.  - Fixed messed-up controls priorities.
5058  +  +
5059  * Removed again all the stuff from config/preloads that one wouldn't  * Removed again all the stuff from +config/preloads+ that one wouldn't
5060    be able to preload at the time the initial heap image is built.    be able to preload at the time the initial heap image is built.
5061    (Many libraries, _e.g._, CML, do not exist yet at this time.  The    (Many libraries, _e.g._, CML, do not exist yet at this time.  The
5062     only libraries that can be preloaded via config/preloads are those     only libraries that can be preloaded via config/preloads are those
# Line 4262  Line 5075 
5075  //--------------------------------------------------------------------  //--------------------------------------------------------------------
5076  [2002/05/18]::  [2002/05/18]::
5077  +  +
5078  o Made the mdl tool stuff compile and run again.  * Made the mdl tool stuff compile and run again.
5079  o I've disabled all the stuff that depends on RTL specifications; they  * I've disabled all the stuff that depends on RTL specifications; they
5080    are all badly broken anyway.    are all badly broken anyway.
5081  +  +
5082  owner:[Allen Leung]  owner:[Allen Leung]
# Line 4271  Line 5084 
5084  //--------------------------------------------------------------------  //--------------------------------------------------------------------
5085  [2002/05/17]::  [2002/05/17]::
5086  +  +
5087  1. John Reppy made several modifications to the SML/NJ library.  1. John Reppy made several modifications to the *SML/NJ Library*.
5088     In particular, there is a shiny new controls-lib.cm.     In particular, there is a shiny new controls-lib.cm.
5089  +  +
5090  2. Pushed new controls interface through compiler so that everything  2. Pushed new controls interface through compiler so that everything
5091     compiles again.     compiles again.
5092  +  +
5093  3. Added FormatComb and FORMAT_COMB to the CML version of the  3. Added +FormatComb+ and +FORMAT_COMB+ to the *CML* version of the
5094     SML/NJ library (so that CML compiles again).     *SML/NJ Library* (so that *CML* compiles again).
5095  +  +
5096  4. Modified init scripts because XXX_DEFAULT environment variables  4. Modified init scripts because XXX_DEFAULT environment variables
5097     are no longer with us.  (Boot-time initialization is now done     are no longer with us.  (Boot-time initialization is now done
# Line 4291  Line 5104 
5104  [2002/05/15]::  [2002/05/15]::
5105  +  +
5106          All pseudo-ops emitted before the first segment declaration          All pseudo-ops emitted before the first segment declaration
5107  such as TEXT, DATA, and BSS directives are assumed to be global  such as +TEXT+, +DATA+, and +BSS+ directives are assumed to be global
5108  declarations and are emitted first in the assembly file. This is  declarations and are emitted first in the assembly file. This is
5109  useful in a number of situations where one has pseudo-ops that are not  useful in a number of situations where one has pseudo-ops that are not
5110  specific to any segment, and also works around the constraint that one  specific to any segment, and also works around the constraint that one
5111  cannot have client pseudo-ops in the TEXT segment.  cannot have client pseudo-ops in the +TEXT+ segment.
5112  +  +
5113          Because no segment is associated with these declarations it is          Because no segment is associated with these declarations it is
5114  an error to allocate any space or objects before the first segment  an error to allocate any space or objects before the first segment
5115  directive and an exception will be raised. However, we cannot make  directive and an exception will be raised. However, we cannot make
5116  this check for client pseudo-ops.  this check for client pseudo-ops.
5117  +  +
5118          These top level declarations are a field in the CFG graph_info.  These top level declarations are a field in the CFG +graph_info+.
5119  In theory you can continue to add to this field after the CFG has been  In theory you can continue to add to this field after the CFG has been
5120  built -- provided you know what you are doing;-)  built -- provided you know what you are doing;-)
5121  +  +
# Line 4538  Line 5351 
5351  //--------------------------------------------------------------------  //--------------------------------------------------------------------
5352  [2002/03/23]::  [2002/03/23]::
5353  +  +
5354    --
5355    1. Changes to FLINT primops:    1. Changes to FLINT primops:
5356  +  +
5357    [source,sml]
5358    ------------
5359      (* make a call to a C-function;      (* make a call to a C-function;
5360       * The primop carries C function prototype information and specifies       * The primop carries C function prototype information and specifies
5361       * which of its (ML-) arguments are floating point. C prototype       * which of its (ML-) arguments are floating point. C prototype
# Line 4557  Line 5373 
5373      *)      *)
5374    | RAW_RECORD of {tag:bool,sz:int}    | RAW_RECORD of {tag:bool,sz:int}
5375    and ccall_type = CCALL_INT32 | CCALL_REAL64 | CCALL_ML_PTR    and ccall_type = CCALL_INT32 | CCALL_REAL64 | CCALL_ML_PTR
5376  +  ------------
5377    
5378    2.  These CPS primops are now overloaded:    2.  These CPS primops are now overloaded:
5379  +  +
5380    [source,sml]
5381    ------------
5382         rawload of {kind:numkind}         rawload of {kind:numkind}
5383         rawstore of {kind:numkind}         rawstore of {kind:numkind}
5384    ------------
5385  +  +
5386        The one argument form is:        The one argument form is:
5387  +  +
5388    [source,sml]
5389    ------------
5390           rawload {kind} address           rawload {kind} address
5391    ------------
5392  +  +
5393        The two argument form is:        The two argument form is:
5394  +  +
5395    [source,sml]
5396    ------------
5397           rawload {kind} [ml object, byte-offset]           rawload {kind} [ml object, byte-offset]
5398    ------------
5399  +  +
5400    3. RAW_CCALL/RCC now takes two extra arguments:    3. RAW_CCALL/RCC now takes two extra arguments:
5401  +  +
# Line 4589  Line 5415 
5415  +  +
5416    5. Pickler/unpicker    5. Pickler/unpicker
5417  +  +
5418       Changed to handle RAW_RECORD and newest RAW_CCALL  Changed to handle +RAW_RECORD+ and newest +RAW_CCALL+
5419  +  +
5420    6. MLRiscGen,    6. MLRiscGen,
5421  +  +
5422       a. Changed to handle the new rawload/rawstore/rawrecord operators.       a. Changed to handle the new rawload/rawstore/rawrecord operators.
5423       b. Code for handling C Calls has been moved to a new module CPSCCalls,       b. Code for handling C Calls has been moved to a new module CPSCCalls,
5424          in the file CodeGen/cpscompile/cps-c-calls.sml     in the file +CodeGen/cpscompile/cps-c-calls.sml+
5425  +  +
5426    7. Added the conditional move operator    7. Added the conditional move operator
5427  +  +
5428    [source,sml]
5429    ------------
5430           condmove of branch           condmove of branch
5431    ------------
5432  +  +
5433       to cps.  Generation of this is still buggy so it is currently       to cps.  Generation of this is still buggy so it is currently
5434       disabled.       disabled.
5435    --
5436  +  +
5437  owner:[Allen Leung]  owner:[Allen Leung]
5438    
# Line 4655  Line 5485 
5485  +  +
5486  will display clusters that are larger than the value set by the above.  will display clusters that are larger than the value set by the above.
5487  +  +
 +  
5488  owner:[Lal George]  owner:[Lal George]
5489    
5490  //--------------------------------------------------------------------  //--------------------------------------------------------------------
# Line 4676  Line 5505 
5505  //--------------------------------------------------------------------  //--------------------------------------------------------------------
5506  [2002/03/21]::  [2002/03/21]::
5507  +  +
5508    --
5509    1. Recoded the buggy parts of x86-fp.    1. Recoded the buggy parts of x86-fp.
5510  +  +
5511       a. All the block reordering code has been removed.       a. All the block reordering code has been removed.
# Line 4714  Line 5544 
5544       NOTE: the machine description stuff in the repository is still broken.       NOTE: the machine description stuff in the repository is still broken.
5545             Again, I can't put my fixes in because that involves             Again, I can't put my fixes in because that involves
5546             changes to MLTREE.             changes to MLTREE.
5547    --
5548  +  +
5549  owner:[Allen Leung]  owner:[Allen Leung]
5550    
# Line 5346  Line 6177 
6177  +  +
6178  A wild mix of changes, some minor, some major:  A wild mix of changes, some minor, some major:
6179  +  +
6180    --
6181  * All C FFI-related libraries are now anchored under $c:  * All C FFI-related libraries are now anchored under $c:
6182      $/c.cm      --> $c/c.cm      $/c.cm      --> $c/c.cm
6183      $/c-int.cm  --> $c/internals/c-int.cm      $/c-int.cm  --> $c/internals/c-int.cm
# Line 5387  Line 6219 
6219  +  +
6220  * As a result of the above, signature POINTER_TO_INCOMPLETE_TYPE has  * As a result of the above, signature POINTER_TO_INCOMPLETE_TYPE has
6221    been vastly simplified.    been vastly simplified.
6222    --
6223  +  +
6224  owner:[Matthias Blume]  owner:[Matthias Blume]
6225    
# Line 5438  Line 6271 
6271  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6272  [2002/02/14]::  [2002/02/14]::
6273  +  +
6274    --
6275  Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation  Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation
6276  of Isabelle on the x86.  of Isabelle on the x86.
6277  +  +
# Line 5477  Line 6311 
6311      time or runtime).  This bug caused the RA (especially on the x86)      time or runtime).  This bug caused the RA (especially on the x86)
6312      to go thru the potential spill phase when there are still nodes on the      to go thru the potential spill phase when there are still nodes on the
6313      freeze queue.      freeze queue.
6314    --
6315  +  +
6316  owner:[Lal George]  owner:[Lal George]
6317    
# Line 5500  Line 6335 
6335  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6336  [2002/02/13]::  [2002/02/13]::
6337  +  +
6338  1. More tweaks to ml-nlffigen:  --
6339    . More tweaks to ml-nlffigen:
6340  +  +
6341     - better internal datastructures (resulting in slight speedup)     - better internal datastructures (resulting in slight speedup)
6342     - "-match" option requires exact match     - "-match" option requires exact match
# Line 5510  Line 6346 
6346     - bug fixes (related to calculation of transitive closure of types     - bug fixes (related to calculation of transitive closure of types
6347       to be included in the output)       to be included in the output)
6348  +  +
6349  2. Minor Basis updates:  . Minor Basis updates:
6350  +  +
6351     - added implementations for List.collate and Option.app     - added implementations for List.collate and Option.app
6352    --
6353  +  +
6354  owner:[Matthias Blume]  owner:[Matthias Blume]
6355    
# Line 5544  Line 6381 
6381  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6382  [2002/02/08]::  [2002/02/08]::
6383  +  +
6384  1. The installer (config/install.sh) has gotten smarter:  --
6385    . The installer (config/install.sh) has gotten smarter:
6386  +  +
6387    --
6388       - Configuration options are a bit easier to specify now       - Configuration options are a bit easier to specify now
6389         (in config/targets).         (in config/targets).
6390       - Bug in recognizing .tar.bz2 files fixed.       - Bug in recognizing .tar.bz2 files fixed.
# Line 5556  Line 6395 
6395         variable INSTALL_QUIETLY to "true".  "Quieter" does not mean         variable INSTALL_QUIETLY to "true".  "Quieter" does not mean
6396         "completely silent", though.         "completely silent", though.
6397       - Build HashCons library as part of smlnj-lib.       - Build HashCons library as part of smlnj-lib.
6398    --
6399  +  +
6400  2. A new scheme for assigning persistent identifiers to compilation  . A new scheme for assigning persistent identifiers to compilation
6401     units (and, by extension, to types etc.) has been put into place.     units (and, by extension, to types etc.) has been put into place.
6402     This fixes a long-standing bug where types and even dynamic values     This fixes a long-standing bug where types and even dynamic values
6403     can get internally confused, thereby compromising type safety     can get internally confused, thereby compromising type safety
6404     (abstraction) and dynamic correctness.  See     (abstraction) and dynamic correctness.  See
6405  +       http://cm.bell-labs.com/cm/cs/who/blume/pid-confusion.tgz[]
      http://cm.bell-labs.com/cm/cs/who/blume/pid-confusion.tgz  
 +  
6406     for an example of how things could go wrong until now.     for an example of how things could go wrong until now.
6407  +  +
6408     The downside of the new scheme is that pids are not quite as     The downside of the new scheme is that pids are not quite as
# Line 5576  Line 6414 
6414  +  +
6415     Cutoff recompilation, however, has not been compromised because     Cutoff recompilation, however, has not been compromised because
6416     CM keeps pid information in special caches between runs.     CM keeps pid information in special caches between runs.
6417    --
6418  +  +
6419  owner:[Matthias Blume]  owner:[Matthias Blume]
6420    
# Line 5595  Line 6434 
6434  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6435  [2002/02/06]::  [2002/02/06]::
6436  +  +
6437  1. A bug fix from Allen.  --
6438  +  . A bug fix from Allen:
6439      A typo causes extra fstp %st(0)'s to be generated at compensation      A typo causes extra +fstp %st(0)+ instructions to be generated at compensation
6440      edges, which might cause stack underflow traps at runtime.  This      edges, which might cause stack underflow traps at runtime.  This
6441      occurs in fft where there are extraneous fstps right before the 'into'      occurs in fft where there are extraneous fstps right before the +into+
6442      trap instruction (in this case they are harmless since none of the      trap instruction (in this case they are harmless since none of the
6443      integers overflow.)      integers overflow.)
6444  +  . Pulled out various utility modules that were embedded in the modules
 2. Pulled out various utility modules that were embedded in the modules  
6445     of the register allocator. I need these modules for other purposes, but     of the register allocator. I need these modules for other purposes, but
6446     they are not complete enough to put into a library (just yet).     they are not complete enough to put into a library (just yet).
6447    --
6448  +  +
6449  owner:[Lal George]  owner:[Lal George]
6450    
6451  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6452  [2002/01/31]::  [2002/01/31]::
6453  +  +
6454  1. C-calls on Sparc needlessly allocated a huge chunk (96 bytes)  --
6455     of extra stack space by mistake.  Fixed.  . Fixed a bug where C-calls on SPARC needlessly allocated a huge chunk (96 bytes)
6456  +     of extra stack space by mistake.
6457  2. Bug in logic of handling of command-line options in ml-nlffigen fixed.  . Bug in logic of handling of command-line options in ml-nlffigen fixed.
6458    --
6459  +  +
6460  owner:[Matthias Blume]  owner:[Matthias Blume]
6461    
# Line 5623  Line 6463 
6463  [2002/01/30]::  [2002/01/30]::
6464  +  +
6465     MLRISC bug fixes:     MLRISC bug fixes:
6466     1. Fixed a bindings computation bug in the 'nowhere' program generator tool.  --
6467     2. MachineInt.fromString was negating its value.  . Fixed a bindings computation bug in the 'nowhere' program generator tool.
6468    . MachineInt.fromString was negating its value.
6469    --
6470  +  +
6471  owner:[Allen Leung]  owner:[Allen Leung]
6472    
# Line 5671  Line 6513 
6513  //--------------------------------------------------------------------  //--------------------------------------------------------------------
6514  [2002/01/28]::  [2002/01/28]::
6515  +  +
6516  1. Retracted earlier 110.38.  (The Release_110_38 tag has been replaced  --
6517    . Retracted earlier 110.38.  (The Release_110_38 tag has been replaced
6518     with blume-Release_110_38-retracted.)     with blume-Release_110_38-retracted.)
6519  +  
6520  2. Fixed a problem with incorrect rounding modes in real64.sml.  . Fixed a problem with incorrect rounding modes in real64.sml.
6521     (Thanks to Andrew Mccreight <andrew.mccreight@yale.edu>.)     (Thanks to Andrew Mccreight <andrew.mccreight@yale.edu>.)
6522  +  
6523  3. A bug in ml-nlffigen related to the handling of unnamed structs, unions,  . A bug in ml-nlffigen related to the handling of unnamed structs, unions,
6524     and enums fixed.  The naming of corresponding ML identifiers should     and enums fixed.  The naming of corresponding ML identifiers should
6525     now be consistent again.     now be consistent again.
6526    --
6527  +  +
6528  owner:[Matthias Blume]  owner:[Matthias Blume]
6529    
# Line 6991  Line 7835 
7835  +  +
7836    MLRISC features.    MLRISC features.
7837  +  +
7838    1. Fix to CMPXCHG instructions.    1. Fix to +CMPXCHG+ instructions.
7839    2. Changed RA interface to allow annotations in callbacks.    2. Changed RA interface to allow annotations in callbacks.
7840    3. Added a new method to the stream interface to allow annotations updates.    3. Added a new method to the stream interface to allow annotations updates.
7841  +  +

Legend:
Removed from v.3998  
changed lines
  Added in v.4461

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