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 4107, Mon Sep 21 16:59:07 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]::  [2015/09/21]::
657  Improvements to the error messages produced by the *ml-ulex* lexer generator.  Improvements to the error messages produced by the *ml-ulex* lexer generator.
658  +  +

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

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