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 4074, Mon Jun 15 14:17:23 2015 UTC revision 4461, Sun Oct 1 22:04:30 2017 UTC
# Line 48  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 85  Line 87 
87    
88  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////
89    
90    //====================================================================
91  // == Recent updates  // == 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]::  [2015/06/11]::
711  +  +
712  Added Mac OS X 10.11 (El Capitan) to the list of operating systems  Added Mac OS X 10.11 (El Capitan) to the list of operating systems
# Line 98  Line 717 
717  //--------------------------------------------------------------------  //--------------------------------------------------------------------
718  [2015/05/27]::  [2015/05/27]::
719  +  +
720  Added support for SuccessorML lexical extensions.  These can be enabled  Added support for *Successor ML* lexical extensions.  These can be enabled
721  using the command-line option ++-Cparser.succ-ml=true++ or the assignment  using the command-line option ++-Cparser.succ-ml=true++ or by the assignment
722  +  +
723  [source,sml]  [source,sml]
724  ------------  ------------
# Line 107  Line 726 
726  ------------  ------------
727  +  +
728  at the REPL.  The extensions are as follows:  at the REPL.  The extensions are as follows:
729    +
730  --  --
731    - "_" as a separator in numeric literals; __e.g.__, ++123_456++, ++0wxff_ff_ff_f3++,    - Underscore ("++_++") as a separator in numeric literals; __e.g.__, ++123_456++,
732      ++123_456.1++, ...      ++0wxff_ff_ff_f3++, ++123_456.1++, ...
733    
734    - end-of-line comments, which are denoted using ++(*)++.  End-of-line comments    - end-of-line comments, which are denoted using ++(*)++.  End-of-line comments
735      properly nest into conventional block comments.  For example, the following      properly nest into conventional block comments.  For example, the following
# Line 125  Line 745 
745    - binary literals for both integers and words; __e.g.__, ++0b0101_1110++, or    - binary literals for both integers and words; __e.g.__, ++0b0101_1110++, or
746      ++0wb1101++.      ++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]  owner:[John Reppy,http://cs.uchicago.edu/~jhr]
754    
755  //====================================================================  //====================================================================
# Line 3993  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 4006  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 4020  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 4084  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 4113  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 4147  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 4207  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 4225  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 4338  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 4354  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 4368  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 4420  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 4445  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 4454  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 4474  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 4721  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 4740  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 4772  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 4838  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 4859  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 4897  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 5529  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 5570  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    

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

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