Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

sml/trunk/HISTORY revision 1389, Wed Sep 24 20:09:40 2003 UTC sml/trunk/NOTES/HISTORY revision 2342, Wed Feb 21 04:42:42 2007 UTC
# Line 1  Line 1 
1  This is the HISTORY file for the Yale SML/NJ CVS repository.  This is the HISTORY file for the SML/NJ repository.
2    
3  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
4  The entries in this file will be used when creating the README  The entries in this file will be used when creating the README
# Line 7  Line 7 
7    
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  
11    Name: Your Name (web page or e-mail)
12    Date: yyyy/mm/dd hh:mm:ss
13    Tag: cvs-tag-for-this-change
14    Description:
15    
16    ----------------------------------------------------------------------
17    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
18    Date: 2007/02/20
19    Description:
20    
21      Bug fix: when SaveCState was called with two values to save, a subsequent
22      GC could cause the RestoreCState to fail because the saved state had been
23      promoted to tagless pair.
24    
25    ----------------------------------------------------------------------
26    Name: Allen Leung (leunga (at) reservoir (dot) com)
27    Date: 2007/02/20 19:08:00 EST
28    Description:
29    
30        Bug triggered by:
31    
32        val a1 = Word8Array.array(a1, 0w0);
33        val _  = Word8Array.update(a1, 0, 0w128);
34    
35        x86MCEmitter crashed when the immediate operand to MOVB was outside
36    of the range -128 ... 127.  I've changed the code so that the range
37    check is disabled.   Only the low order 8 bits of the immediate operand
38    are now significant.
39    
40    
41    ----------------------------------------------------------------------
42    Name: Matthias Blume (http://www.tti-c.org/blume/)
43    Date: 2007/02/15 09:20:00 CST
44    Description:
45    
46    Eliminated any mention of lexgen.  (Lexgen was an early precursor
47    to ml-ulex.)
48    
49    You should update your admin directory, so the shell scripts for
50    maintaining your local copy of the repository reflect this change.
51    
52    ----------------------------------------------------------------------
53    Name: Matthias Blume (http://www.tti-c.org/blume/)
54    Date: 2007/02/14 15:45:00 CST
55    Description:
56    
57    Fixed bug in CM's parallel make facility that failed to have
58    the master re-link modules after letting slaves compile them.
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume (http://www.tti-c.org/blume/)
62    Date: 2007/02/12 15:10:00 CST
63    Description:
64    
65    Fixed typo in ml-build script that prevented library anchors
66    from being registered.
67    
68    ----------------------------------------------------------------------
69    Name: Matthias Blume (http://www.tti-c.org/blume/)
70    Date: 2007/02/02 15:20:00 CST
71    Tag: release-110.62
72    Description:
73    
74    New working release (110.62).  NEW BOOTFILES!
75    
76    ----------------------------------------------------------------------
77    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
78    Date: 2007/01/31
79    Description:
80    
81    Brought ml-lpt manual up-to-date with the code.  Many minor
82    improvements to the tools, and a few minor bugfixes.  Prepared
83    ml-lpt-lib for integration with new UTF8 structure.  Changed
84    the interface for creating streams in ml-ulex (we now support
85    stream creation from several kinds of sources).  Overall, the
86    tools are now quite stable, and their interfaces are unlikely to
87    change in a way that would break compatibility.  More work,
88    however, is needed in the documentation.
89    
90    ----------------------------------------------------------------------
91    Name: Matthias Blume (http://www.tti-c.org/blume/)
92    Date: 2007/02/01 10:05:00 CST
93    Description:
94    
95    Implemented library installer.  Moved CM plugin code for
96    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
97    their respective trees.  Implemented CM plugin for ml-ulex
98    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
99    and ml-antlr.
100    
101    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
102    CM tools.  (It turns out to be too messy to do otherwise because
103    there is too much code that during installation relies on the presence
104    of these tools -- resulting in a tricky ordering problem.)
105    
106    ----------------------------------------------------------------------
107    Name: Matthias Blume (http://www.tti-c.org/blume/)
108    Date: 2007/01/30 11:05:00 CST
109    Description:
110    
111    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
112    Modified CM's startup code to use shiftArgs as it processes
113    command line arguments.  This way, the init code in each .sml-file
114    or library that is mentioned at the top level will see only
115    those arguments that have not yet been processed at this point.
116    In other words, the init code can "seize control" and process the
117    remaining command line.
118    
119    ----------------------------------------------------------------------
120    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
121    Date: 2007/01/28
122    Description:
123    
124    Added the UTF8 structure and signature from the Moby compiler to
125    the SML/NJ library (and the CML library).  These modules will replace
126    the version in the ml-lpt-lib.
127    
128    ----------------------------------------------------------------------
129    Name: Matthias Blume (http://www.tti-c.org/blume/)
130    Date: 2007/01/26 15:10:00 CST
131    Description:
132    
133    Added entries to handle ml-lpt-lib.cm in installer.
134    
135    ----------------------------------------------------------------------
136    Name: Matthias Blume (http://www.tti-c.org/blume/)
137    Date: 2006/12/15 11:10:00 CST
138    Tag: release-110.61
139    Description:
140    
141    New working release (110.61).  NEW BOOTFILES!
142    
143    This supersedes the pre-brown-paper-bug release (see below).
144    
145    ----------------------------------------------------------------------
146    Name: Matthias Blume (http://www.tti-c.org/blume/)
147    Date: 2006/12/15 11:00:00 CST
148    Description:
149    
150    Fixed brown-paper-bag bug with CM's pathname handling, which made
151    installation fail under Win32.
152    
153    ----------------------------------------------------------------------
154    Name: Matthias Blume (http://www.tti-c.org/blume/)
155    Date: 2006/12/14 12:00:00 CST
156    Description:
157    
158    Obsolete!
159    
160    [New working release (110.61).  NEW BOOTFILES!]
161    
162    ----------------------------------------------------------------------
163    Name: John Reppy (http://cs.uchicago.edu/~jhr)
164    Date: 2006/14/06 09:50:00 CST
165    Description:
166    
167    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
168    get the c_cc termios data copied correctly.  Also moved the allocation
169    of the string to avoid problems if it caused a GC.
170    
171    Thanks to Timothy Bourke for the bug report and fix.
172    
173    ----------------------------------------------------------------------
174    Name: Matthias Blume (http://www.tti-c.org/blume)
175    Date: 2006/12/08 09:50:00 CST
176    Description:
177    
178    Added code to CM's "standard shell tool" implementation which
179    causes it to tolerate (with a warning) the situation where the shell
180    command fails (e.g., due to the shell command's non-existence)
181    as long as all target files exist.
182    
183    This makes it possible to, e.g., build ml-yacc from sources even if
184    svn checkout messed up the time stamps on files in such a way that
185    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
186    be needed to re-process yacc.grm, but obviously it might not yet be
187    available at that time.)
188    
189    ----------------------------------------------------------------------
190    Name: John Reppy (http://cs.uchicago.edu/~jhr)
191    Date: 2006/12/06 12:06:00 CST
192    Description:
193    
194    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
195    recvVecFromNB' in the SOCKET signature.  This error is actually
196    in the SML Basis specification too.
197    
198    ----------------------------------------------------------------------
199    Name: Matthias Blume (http://www.tti-c.org/blume/)
200    Date: 2006/12/05 22:40:00 CST
201    Description:
202    
203    CM now reports undefined anchors as errors and aborts execution
204    rather than silently pressing on using bogus values.
205    
206    ----------------------------------------------------------------------
207    Name: Matthias Blume (http://www.tti-c.org/blume/)
208    Date: 2006/11/29 10:00:00 CST
209    Description:
210    
211    Use Say.vsay for printing the "[autoloading]" message, so
212    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
213    to suppress them.
214    
215    ----------------------------------------------------------------------
216    Name: Matthias Blume (http://www.tti-c.org/blume/)
217    Date: 2006/11/10 11:00:00 CST
218    Description:
219    
220    Fixed bug in CM where "with:" specifications that affect compilation
221    (as opposed to parsing) were ignored.
222    
223    ----------------------------------------------------------------------
224    Name: Matthias Blume (http://www.tti-c.org/blume/)
225    Date: 2006/11/09 14:30:00 CST
226    Tag: release-110.60
227    Description:
228    
229    New working release (110.60).  NEW BOOTFILES!
230    
231    This is the first subversion-hosted release.  There are also changes
232    to the directory layout.  Here is a table:
233    
234    (All pathnames are relative to the SML/NJ "root" directory.)
235    
236      config -> config
237    
238      src/cm -> base/cm
239      src/compiler -> base/compiler
240      src/runtime -> base/runtime
241      src/system -> base/system
242    
243      src/cm/pgraph -> pgraph
244    
245      src/READMES -> base/READMES
246      src/$notefile -> base/NOTES/$notefile
247         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
248                           MACOSXINSTALL WININSTALL
249    
250      src/smlnj-lib -> smlnj-lib
251      src/MLRISC -> MLRISC
252      ckit -> ckit
253      src/cml -> cml
254      src/eXene -> eXene
255      src/heap2asm -> heap2asm
256      src/lexgen -> lexgen
257      src/ml-burg -> ml-burg
258      src/ml-lex -> ml-lex
259      src/ml-yacc -> ml-yacc
260      src/ml-nlffi-lib -> nlffi/lib
261      src/ml-nlffigen -> nlffi/gen
262      src/smlnj-c -> smlnj-c
263      src/tools/TraceDebugProf -> trace-debug-profile
264    
265    In addition, there is also a new
266    
267      ml-lpt
268    
269    directory containing two new program generator tools: ml-ulex and
270    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
271    LL(k) parser generator). These tools are currently "beta-quality"
272    
273    The latest versios of the sources can now be obtained anonymously
274    via subversion.  For this, it is useful to first check out
275    
276       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
277    
278    and put the resulting directory on your shell's PATH.  This provides
279    access to three shell scripts: checkout-all.sh, stat-all.sh,
280    and refresh-all.sh.
281    
282    To create a freshly checked-out copy of the sources, do
283    
284       checkout-all.sh [dir]
285    
286    where dir is the optional SML/NJ root directory (default is ".").
287    
288    This creates the above directory layout.  Each subdirectory of
289    the root is under individual subversion control.  The stat-all.sh
290    and refresh-al.sh scripts apply "svn stat" or "svn update" to
291    each of these subtrees.
292    
293    ----------------------------------------------------------------------
294    Name: Matthias Blume (http://www.tti-c.org/blume/)
295    Date: 2006/11/02 12:20:00 CST
296    Description:
297    
298    Reorganized directory layout.
299    
300    This is a temporary solution, more reorganization is to come.
301    
302    The basic idea is to have a number of toplevel trees, each corresponding
303    to a well-defined part of the overall system.  Each part can be
304    maintained individually, even in separate source repositories,
305    although currently we still serve everything out of the main
306    smlnj-gforge tree.
307    
308    Installer and and scripts have been updated to reflect the new
309    layout.  The installer (base/src/system/smlnj/installer) is now
310    "scriptable" to avoid burning too much knowledge about the
311    layout into SML source code.  The main script used by the installer
312    is in config/actions.
313    
314    The main change is that many of the subdirectories of what used to
315    be known as "src" have moved to the toplevel.  The "src" directory
316    itself has moved down into a subtree called "base".  (We may eventually
317    get rid of the extra level of indirection represented by "src".)
318    
319    The layout is now as follows:
320    
321      toplevel tree name | default repository
322                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
323      -------------------+----------------------------------------------------
324      config             | $gf/config/trunk
325                         |
326      base               | $gf/sml/trunk
327                         |
328      smlnj-lib          | $gf/smlnj-lib/trunk
329      MLRISC             | $gf/MLRISC/trunk
330                         |
331      ml-yacc            | $gf/ml-yacc/trunk
332      ml-lex             | $gf/ml-lex/trunk
333      ml-burg            | $gf/ml-burg/trunk
334      lexgen             | $gf/lexgen/trunk
335      heap2asm           | $gf/heap2asm/trunk
336                         |
337      cml                | $gf/cml/trunk
338      eXene              | $gf/eXene/trunk
339      ckit               | $gf/ckit/trunk
340      nlffi              | $gf/nlffi/trunk
341                         |
342      smlnj-c            | $gf/smlnj-c/trunk
343    
344    In $gf/admin there are a few useful shell scripts for checking out
345    and maintaining the entire collection of trees:
346    
347       admin/checkout-all.sh [dir]
348          -- optionally creates dir and checks out all trees from their
349             default repositories; if dir is missing, checkout into .
350       admin/refresh-all.sh [dir]
351          -- looks at all trees (from the above list) in dir (default: .)
352             and runs "svn update" if the tree exists and is under
353             subversion control;
354             non-existing or non-subversion trees are skipped
355       admin/stat-all.sh [dir]
356          -- like refresh-all.sh, but runs "svn stat" instead
357    
358    ----------------------------------------------------------------------
359    Name: Matthias Blume (http://www.tti-c.org/blume/)
360    Date: 2006/10/05 11:30:00 CDT
361    Tag: blume-20061005-merge-amd64
362    Description:
363    
364    Merged code for AMD64 backend (Mike Rainey's work).
365    Everything is hooked up but untested.
366    
367    ----------------------------------------------------------------------
368    Name: Matthias Blume (http://www.tti-c.org/blume/)
369    Date: 2006/05/17 14:00:00 CST
370    Tag: Release_110_59
371    Description:
372    
373    New working version (110.59).  NEW BOOTFILES!
374    
375    I am freezing 110.59.  Changes other than the version-number increase:
376    
377      eXene:
378    
379         * committed changes to eXene from Alley Stoughton:
380             "fixed bugs in X authorization and resource handling, as well
381              as in the pile and viewport widgets"
382    
383      Runtime:
384        * fixed linking problem with NetBSD 3.x.
385    
386      Lexgen:
387        * lexgen tool handles non-ascii characters in 7-bit mode the same
388          way that ml-lex does
389    
390        * lexgen propagates exceptions the same way that ml-lex does
391    
392      CML:
393        * Fixed a bug in the SyncVar polling functions (iGetPoll,
394          mTakePoll, and mGetPoll) that could lead to livelock.
395    
396    ----------------------------------------------------------------------
397    Name: Matthias Blume (http://www.tti-c.org/blume/)
398    Date: 2006/05/12 15:20:00 CST
399    Tag: blume-20060515-makedepend
400    Description:
401    
402    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
403    way.  This should hopefully fix the ml-makedepend problem permanently.
404    
405    ----------------------------------------------------------------------
406    Name: Matthias Blume (http://www.tti-c.org/blume/)
407    Date: 2006/05/12 15:15:00 CST
408    Tag: blume-20060512-makedepend
409    Description:
410    
411    Fixed long-standing bug with ml-makedepend where it would output a
412    spurious dependency to a non-existing file.  (This is a simple fix.
413    It might need further looking into.)
414    
415    ----------------------------------------------------------------------
416    Name: Matthias Blume (http://www.tti-c.org/blume/)
417    Date: 2006/04/20 10:30:00 CDT
418    Tag: blume-20060420-heap2exec
419    Description:
420    
421    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
422    that enable heap2exec under Linux and FreeBSD.
423    
424    ----------------------------------------------------------------------
425    Name: John Reppy
426    Date: 2006/04/14
427    Tag:
428    Description:
429    
430    MLRISC changes:
431      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
432      2) added support for NOTB and XORB operators in pseudo-op expressions
433      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
434      4) added support for 64-bit integer literals
435    
436    ----------------------------------------------------------------------
437    Name: Matthias Blume (http://www.tti-c.org/blume/)
438  Date: yyyy/mm/dd  Date: yyyy/mm/dd
439  Tag: <post-commit CVS tag>  Tag: Release_110_58
440    Description:
441    
442    New working version (110.58).  NEW BOOTFILES!
443    
444    ----------------------------------------------------------------------
445    Name: Matthias Blume (http://www.tti-c.org/blume/)
446    Date: 2006/03/01 22:15:00 CST
447    Tag: blume-20060301-lexgen
448    Description:
449    
450    Incorporated several bugfixes to lexgen.  Compiler now compiles to
451    fixpoint when using lexgen instead of ml-lex.
452    
453    ----------------------------------------------------------------------
454    Name: Matthias Blume (http://www.tti-c.org/blume/)
455    Date: 2006/02/28 22:45:00 CST
456    Tag: blume-20060228-lexgen
457    Description:
458    
459    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
460    provided tarball.  The generated lexers still have problems.
461    
462    ----------------------------------------------------------------------
463    Name: Matthias Blume (http://www.tti-c.org/blume/)
464    Date: 2006/02/26 23:30:00 CST
465    Tag: blume-20060226-ml-flex
466    Description:
467    
468    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
469    of ml-flex on by default.
470    
471    ----------------------------------------------------------------------
472    Name: Matthias Blume (http://www.tti-c.org/blume/)
473    Date: 2006/02/24 16:30:00 CST
474    Tag: blume-20060224-ml-flex
475    Description:
476    
477    Added ml-flex sources.  Partially integrated, but should not be
478    turned on yet!  (Read: leave it commented-out in config/targets!)
479    
480    ----------------------------------------------------------------------
481    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
482    Date: 2006/02/23
483    Tag: jhr-20060223-x86-64
484    Description:
485    Changes to support building on x86-64 systems (using the 32-bit mode).
486    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
487    kernels dropped.
488    
489    ----------------------------------------------------------------------
490    Name: Allen Leung (leunga (at) reservoir (dot) com)
491    Date: 2006/02/22 15:07:00 EST
492    Tag: leunga-20060222-mdl-gen
493    Description:
494    
495      CM has changed.  Updated the script for rebuilding the MLRISC generated
496    files.
497    
498    ----------------------------------------------------------------------
499    Name: Matthias Blume (http://www.tti-c.org/blume/)
500    Date: 2006/02/14 17:30:00 CST
501    Tag: blume-20060214-intel-mac
502    Description:
503    
504    Hooked code for Darwin-specific Intel ABI into main compiler.
505    (This is a temporary solution which relies on the fact that the
506    compiler itself does not use NLFFI.  Eventually we need to divorce
507    intel mac from generic x86 unix code and make separate sets of binaries.)
508    
509    ----------------------------------------------------------------------
510    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
511    Date: 2006/02/13
512    Tag: jhr-20060213-intel-mac
513    Description:
514    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
515    
516    ----------------------------------------------------------------------
517    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
518    Date: 2006/02/06
519    Tag: jhr-20060206-intel-mac
520  Description:  Description:
521    Changes to support MacOS X on Intel hardware.  The C-calls support in
522    MLRISC must also be updated to support the MacOS X ABI.
523    
524    ----------------------------------------------------------------------
525    Name: Matthias Blume (http://www.tti-c.org/blume/)
526    Date: 2005/12/16 00:15:00 CST
527    Tag: blume-20051216-cm
528    Description:
529    
530    Improved error reporting and handling in CM.
531    
532    ----------------------------------------------------------------------
533    Name: Matthias Blume (http://www.tti-c.org/blume/)
534    Date: 2005/11/21 14:00:00 CST
535    Tag: blume-20051121-html-lib
536    Description:
537    
538    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
539    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
540    at the time when config/preloads is processed, the library has to
541    be referred to by another name.  In 110.57 this would be
542    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
543    to be valid as well.)
544    
545    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
546    
547    ----------------------------------------------------------------------
548    Name: Matthias Blume (http://www.tti-c.org/blume/)
549    Date: 2005/11/19 13:45:00 CST
550    Tag: Release_110_57
551    Description:
552    
553    Moved release tag for 110.57.
554    
555    ----------------------------------------------------------------------
556    Name: Matthias Blume (http://www.tti-c.org/blume/)
557    Date: 2005/11/19 23:35:00 CST
558    Tag: blume-20051119-fish
559    Description:
560    
561    Fixed a problem in config/install.sh where it tries to "fish" the
562    name of the CM metadata directory from the wrong place (because
563    the physical location of basis.cm has changed).  Also, corrected the
564    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
565    these problems.)
566    
567    ----------------------------------------------------------------------
568    Name: Matthias Blume (http://www.tti-c.org/blume/)
569    Date: 2005/11/16 14:30:00 CST
570    Tag: blume-orig-110_57
571    Description:
572    
573    New working version (110.57).  NEW BOOTFILES!
574    
575    UPDATE: The release tag has been moved to include a fix for a brown-paper-
576            bag glitch (see above).
577    
578    ----------------------------------------------------------------------
579    Name: Matthias Blume (http://www.tti-c.org/blume/)
580    Date: 2005/11/16 10:25:00 CST
581    Tag: blume-22051116-btrace
582    Description:
583    
584    Fixed problem with bogus exception message when using back-trace
585    facility.
586    
587    ----------------------------------------------------------------------
588    Name: Matthias Blume (http://www.tti-c.org/blume/)
589    Date: 2005/11/15 22:35:00 CST
590    Tag: blume-22051115-array2copy
591    Description:
592    
593    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
594    
595    ----------------------------------------------------------------------
596    Name: Matthias Blume (http://www.tti-c.org/blume/)
597    Date: 2005/11/15 21:35:00 CST
598    Tag: blume-22051115-versiontool
599    Description:
600    
601    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
602    file gets loaded as a tool -- by the equivalent of CM.make during the
603    run of CMB.make.  Thus, CMB's path configuration is meaningless for
604    it.  Instead, it has the status of "user code", so it should use
605    $/basis.cm to refer to the Basis library.  (At least that's true for
606    the purpose of bootstrapping the previous change.  In the future it
607    might make sense to have versiontool.cm refer to
608    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
609    compiler itself uses.)
610    
611    Also patched src/system/testml to have it activate those extra anchor
612    bindings in config/extrapathconfig.
613    
614    ----------------------------------------------------------------------
615    Name: Matthias Blume (http://www.tti-c.org/blume/)
616    Date: 2005/11/15 16:35:00 CST
617    Tag: blume-22051115-libraries
618    Description:
619    
620    This change affects the way the following libraries are tied into
621    the system:
622    
623       $/basis.cm
624       $/smlnj-lib.cm
625       $/pp-lib.cm
626       $/controls-lib.cm
627       $/html-lib.cm
628       $/ml-yacc-lib.cm
629    
630    These libraries are now internally (as seen from the source code
631    of the implementation itself) known by the following names:
632    
633       $smlnj/basis/basis.cm
634       $smlnj/smlnj-lib/smlnj-lib.cm
635       $smlnj/smlnj-lib/pp-lib.cm
636       $smlnj/smlnj-lib/controls-lib.cm
637       $smlnj/smlnj-lib/html-lib.cm
638       $smlnj/ml-yacc/ml-yacc-lib.cm
639    
640    This makes it possible to work with code that requires different
641    versions of these libraries, and which refers to these libraries using
642    their "default" names (i.e., the first set of names above).  In other
643    words, one can un-define or re-define those default names without
644    compromising the proper functioning of the compiler itself.
645    
646    A similar procedure had already been performed for several of the
647    MLRISC libraries that are linked into the compiler.  I did some
648    cleanup on this code.
649    
650    A new file in the config directory (named extrapathconfig) is
651    responsible for setting up path anchors that the compiler itself does
652    not need, but that are typically required by user code.
653    
654    ----------------------------------------------------------------------
655    Name: Matthias Blume
656    Date: 2005/11/07 17:05:00 CST
657    Tag: blume-20051107-slice
658    Description:
659    
660    Fixed erroneous out-of-bounds test in the "update" function of
661    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
662    out the problem.)
663    
664    Pushed some Basis changes through ML-Lex, CML, and eXene.
665    
666    ----------------------------------------------------------------------
667    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
668    Date: 2005/11/07
669    Description:
670    Fixed a Basis incompatibility: The depreciated function Substring.all
671    was removed (use Substring.full instead).
672    
673    ----------------------------------------------------------------------
674    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
675    Date: 2005/11/05
676    Description:
677    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
678    
679    ----------------------------------------------------------------------
680    Name: Matthias Blume (http://www.tti-c.org/blume/)
681    Date: 2005/11/02 16:25:00 CST
682    Tag: blume-20051102-hex
683    Description:
684    
685    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
686      in either upper case or lower case format.
687    * Pushed changes to names of Pack<N>{Big,Little} structures through
688      CML and eXene.
689    
690    ----------------------------------------------------------------------
691    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
692    Date: 2005/11/02
693    Description:
694    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
695    be called PackWord<N>{Big,Little}.
696    
697    ----------------------------------------------------------------------
698    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
699    Date: 2005/10/28
700    Description:
701    Fixed a minor Basis incompatibility: hex digits should be upper case.
702    
703    ----------------------------------------------------------------------
704    Name: Matthias Blume (blume (at) tti - c (dot) org)
705    Date: 2005/10/25 16:00:00 CDT
706    Tag: Release_110_56
707    Description:
708    
709    New working version (110.56).  NEW BOOTFILES!
710    
711    ----------------------------------------------------------------------
712    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
713    Date: 2005/10/25
714    Description:
715    Added interval sets to utility library (signatures INTERVAL_DOMAIN
716    and INTERVAL_SET, and functor IntervalSetFn).
717    
718    ----------------------------------------------------------------------
719    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
720    Date: 2005/10/14
721    Description:
722    Add Zhong Shao's fix for datatype equality functions.
723    
724    ----------------------------------------------------------------------
725    Name: Allen Leung (leunga (at) reservoir (dot) com)
726    Date: 2005/10/14 12:30:00 EST
727    Tag: leunga-20051014-x86-spill
728    Description:
729    
730    Bug fix a bug found by Carl Hauser.
731    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
732    
733    ----------------------------------------------------------------------
734    Name: Allen Leung (leunga (at) reservoir (dot) com)
735    Date: 2005/10/14 11:15:00 EST
736    Tag: leunga-20051014-x86-asm
737    Description:
738    
739    Removed some debugging code in file x86Asm.sml.
740    The function emit_operand was printing out debugging output.
741    
742    ----------------------------------------------------------------------
743    Name: John Reppy
744    Date: 2005/07/27
745    Tag:
746    Description:
747    
748    Fixed ml-lex to recognize "\r" as representing carriage return.
749    
750    ----------------------------------------------------------------------
751    Name: John Reppy
752    Date: 2005/07/27
753    Tag:
754    Description:
755    
756    Fixed ml-yacc to work on files with non-native end-of-line
757    encodings (e.g., Windows text file on a Unix system).
758    
759    ----------------------------------------------------------------------
760    Name: John Reppy
761    Date: 2005/07/20
762    Tag:
763    Description:
764    
765    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
766    to support HPUX 11.
767    
768    ----------------------------------------------------------------------
769    Name: John Reppy
770    Date: 2005/07/06
771    Tag:
772    Description:
773    
774    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
775    
776    ----------------------------------------------------------------------
777    Name: Matthias Blume (blume (at) tti - c (dot) org)
778    Date: 2005/07/06 00:45:00 CDT
779    Tag: blume-20050706-slice-copy
780    Description:
781    
782    Fixed reversed logic for deciding whether to "copy up" or "copy down"
783    in *-array-slice.sml.
784    
785    ----------------------------------------------------------------------
786    Name: Allen Leung (leunga (at) reservoir (dot) com)
787    Date: 2005/05/31 17:00:00 EST
788    Tag: leunga-20050531-cygwin-fault-2
789    Description:
790    
791    A typo in the cygwin code fixed.
792    
793    ----------------------------------------------------------------------
794    Name: Allen Leung (leunga (at) reservoir (dot) com)
795    Date: 2005/05/31 16:47:00 EST
796    Tag: leunga-20050531-cygwin-fault
797    Description:
798    
799    Updated Cygwin's fault/signal handling to match the Windows version.
800    Updated the export list.
801    
802    ----------------------------------------------------------------------
803    Name: Matthias Blume (blume (at) tti - c (dot) org)
804    Date: 2005/05/18 13:35:00 CDT
805    Tag: Release_110_54
806    Description:
807    
808    New working version (110.54).  NEW BOOTFILES!
809    
810    ----------------------------------------------------------------------
811    Name: Matthias Blume (blume (at) tti - c (dot) org)
812    Date: 2005/05/18 11:58:00 CDT
813    Tag: blume-20050518-installer
814    Description:
815    
816    Added support scripts for Mac OS X PackageMaker and modified
817    config/install.sh so that it supports re-dumping a heap image
818    after customization.
819    
820    ----------------------------------------------------------------------
821    Name: Matthias Blume (blume (at) tti - c (dot) org)
822    Date: 2005/05/18 10:55:00 CDT
823    Tag: blume-20050518-realdiv-noovld
824    Description:
825    
826    Un-overloaded / to work around bug in overloading resolution code.
827    
828    ----------------------------------------------------------------------
829    Name: Matthias Blume (blume (at) tti - c (dot) org)
830    Date: 2005/05/16 23:50:00 CDT
831    Tag: blume-20050516-redump-heap
832    Description:
833    
834    Added mechanism for re-creating a heap file for the interactive system
835    after configuration variables have been changed.
836    
837       CM.redump_heap : string -> unit
838    
839    This is much like SMLofNJ.exportML, but starting from the resulting
840    heap does not return to the caller of CM.redump_heap but
841    restarts the interactive system from scratch.  The original call of
842    CM.redump_heap does not return but ends the interactive session.
843    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
844    
845    Internally, redump_heap winds the dynamic execution context back to
846    the point where the original heap image was created and re-executes
847    the heap image generation code in the boot code.
848    
849    ----------------------------------------------------------------------
850    Name: Matthias Blume (blume (at) tti - c (dot) org)
851    Date: 2005/05/09 21:55:00 CDT
852    Tag: blume-20050509-word64
853    Description:
854    
855    Added a hack to the existing hack known as Word64 to make fromString
856    behave correctly.  I am still not sure whether Word64.scan will work
857    as specified with respect to the interaction of radix and prefix.
858    
859    ----------------------------------------------------------------------
860    Name: Allen Leung (leunga (at) reservoir (dot) com)
861    Date: 2005/05/04 11:50:00 EST
862    Tag: leunga-20050504-checkgc
863    Description:
864    
865    Added a gc protocol checking phase.  This phase is enabled with
866    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
867    
868    ----------------------------------------------------------------------
869    Name: Matthias Blume (blume (at) tti - c (dot) org)
870    Date: 2005/05/04 10:45:00 CDT
871    Tag: blume-20050504-intinf
872    Description:
873    
874    Fixed a bug in the implementation of div and mod for IntInf.
875    Thanks to Neophytos Michael for reporting the problem.
876    
877    ----------------------------------------------------------------------
878    Name: Matthias Blume (blume (at) tti - c (dot) org)
879    Date: 2005/05/04 10:35:00 CDT
880    Tag: blume-20050504-join
881    Description:
882    
883    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
884    
885    ----------------------------------------------------------------------
886    Name: Matthias Blume (blume (at) tti - c (dot) org)
887    Date: 2005/02/28 23:40:00 CST
888    Tag: blume-20050228-mVar
889    Description:
890    
891    Fixed serious bug (brown paper bag variety) in new implementation of
892    structure Atom in CML.  (I had accidentally used a mailbox instead of
893    an mvar, leaving the door open for races.)
894    
895    ----------------------------------------------------------------------
896    Name: Matthias Blume (blume (at) tti - c (dot) org)
897    Date: 2005/02/25 15:00:00 CST
898    Tag: Release_110_53
899    Description:
900    
901    New working version (110.53).  NEW BOOTFILES!
902    
903    ----------------------------------------------------------------------
904    Name: Matthias Blume (blume (at) tti - c (dot) org)
905    Date: 2005/02/25 14:50:00 CST
906    Tag: blume-20050225-susp
907    Description:
908    
909    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
910    implemented in Core -- which means that it is the same as the one used
911    by the lazy extension.
912    
913    ----------------------------------------------------------------------
914    Name: Matthias Blume (blume (at) tti - c (dot) org)
915    Date: 2005/02/24 16:50:00 CST
916    Tag: blume-20050224-cml-atom
917    Description:
918    
919    Simpler and at the same time more general implementation of structure
920    Atom in CML.
921    
922    ----------------------------------------------------------------------
923    Name: Matthias Blume (blume (at) tti - c (dot) org)
924    Date: 2005/02/15 17:35:00 CST
925    Tag: blume-20050215-tools
926    Description:
927    
928    Created new "tools" directory under "src" and moved "TraceDebugProf"
929    there.
930    
931    ----------------------------------------------------------------------
932    Name: Matthias Blume (blume (at) tti - c (dot) org)
933    Date: 2005/02/10 17:55:00 CST
934    Tag: blume-20050210-longlong
935    Description:
936    
937    Implemented "long long" arguments and results for NLFFI.  (Only the
938    PPC/MacOS implementation is complete, the other backends still need to
939    be updated.)
940    
941    ----------------------------------------------------------------------
942    Name: Matthias Blume (blume (at) tti - c (dot) org)
943    Date: 2005/01/24 17:40:00 CST
944    Tag: blume-20050124-mlyacc
945    Description:
946    
947    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
948    problem with certain "as" patterns which previously got rendered
949    using incorrect syntax.
950    
951    ----------------------------------------------------------------------
952    Name: Matthias Blume (blume (at) tti - c (dot) org)
953    Date: 2005/01/18 12:00:00 CST
954    Tag: blume-20050118-profile
955    Description:
956    
957    Made time profiling code (interrupt handler) in runtime system aware
958    of new array representation.
959    
960    ----------------------------------------------------------------------
961    Name: Matthias Blume (blume (at) tti - c (dot) org)
962    Date: 2005/01/14 18:00:00 CST
963    Tag: blume-20050114-heap2exec
964    Description:
965    
966    Implemented new (but still experimental) heap2exec facility.  This is
967    tested under Mac OS X and should work under Linux (will test shortly).
968    It will probably also work on the Sparc (will test some time later).
969    
970      - removed old "HACKED_STANDALONE" hack from runtime
971    
972    To be able to test this, uncomment the request for "heap2asm" in
973    config/targets prior to installation.  (Notice that this is different
974    from "heap2exec" mentioned below.  Not a typo.)
975    
976    To perform an actual test, run the command
977    
978       $ bin/heap2exec heapfile execfile
979    
980    (You can put heap2exec on your shell's path.)
981    
982    For example, run
983    
984      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
985    
986    This will create a standalone executable called "mly" which you can
987    then invoke directly as a command.
988    
989    ----------------------------------------------------------------------
990    Name: Matthias Blume (blume (at) tti - c (dot) org)
991    Date: 2005/01/07 11:44:00 CST
992    Tag: blume-20050107-mlstring
993    Description:
994    
995    fixed off-by-one error in ML_STRING macro (globals.c)
996    
997    ----------------------------------------------------------------------
998    Name: Matthias Blume (blume (at) tti - c (dot) org)
999    Date: 2004/12/23 18:00:00 CST
1000    Tag: blume-20041223-santa
1001    Description:
1002    
1003    Made ml-build script "smarter" (but only very little).
1004    
1005    ----------------------------------------------------------------------
1006    Name: Matthias Blume (blume (at) tti - c (dot) org)
1007    Date: 2004/12/21 15:05:00 CST
1008    Tag: blume-20041221-longlong
1009    Description:
1010    
1011    * Implemented access to signed and unsigned long long data in NLFFI.
1012    (The parameter-passing part of the picture has not complete. But
1013    data structure access seems to work.)
1014    
1015    * Fixed CM's incorrect assumption that the PPC is little-endian.
1016      (On the Mac, it is big-endian.  And that's currently our only
1017      PPC platform.)
1018    
1019    ----------------------------------------------------------------------
1020    Name: Matthias Blume (blume (at) tti - c (dot) org)
1021    Date: 2004/12/21 12:50:00 CST
1022    Tag: blume-20041221-memory
1023    Description:
1024    
1025    Some cleanup in the $c/memory.cm library: separated some concerns by
1026    moving allocation code and memory access code each into their own
1027    files.
1028    
1029    ----------------------------------------------------------------------
1030    Name: Allen Leung (leunga (at) reservoir (dot) com)
1031    Date: 2004/12/17 16:12:00 EST
1032    Tag: leunga-20041217-cygwin-smlnj-home
1033    Description:
1034    
1035        The Unix I/O library of SML/NJ on cygwin does not understand
1036    Windows style pathname, so problems arise when SMLNJ_HOME is set
1037    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1038    to a POSIX pathname on cygwin.
1039    
1040    ----------------------------------------------------------------------
1041    Name: Matthias Blume (blume (at) tti - c (dot) org)
1042    Date: 2004/12/16 13:35:00 CST
1043    Tag: Release_110_52
1044    Description:
1045    
1046    Last-minute changes incorporated into 110.52.  Release tag moved.
1047    
1048    The changes:
1049       - HashString.hashString' -> HashString.hashSubstring
1050       - bug fix in UnivariateStats
1051    
1052    ----------------------------------------------------------------------
1053    Name: Matthias Blume (blume (at) tti - c (dot) org)
1054    Date: 2004/12/15 23:40:00 CST
1055    Tag: blume-20041215-hashSubstring
1056    Description:
1057    
1058    - HashString.hashString' -> HashString.hashSubstring
1059    - corresponding changes in atom.sml
1060    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1061      added some comments
1062    
1063    ----------------------------------------------------------------------
1064    Name: Matthias Blume (blume (at) tti - c (dot) org)
1065    Date: 2004/12/15 15:30:00 CST
1066    Tag: (Release_110_52)
1067    Description:
1068    
1069    New working version (110.52).  NEW BOOTFILES!
1070    
1071    ----------------------------------------------------------------------
1072    Name: Matthias Blume (blume (at) tti - c (dot) org)
1073    Date: 2004/12/15 12:45:00 CST
1074    Tag: blume-20041215-spaces
1075    Description:
1076    
1077    More on the space problem (this time for Win32).
1078    
1079    ----------------------------------------------------------------------
1080    Name: Matthias Blume (blume (at) tti - c (dot) org)
1081    Date: 2004/12/14 17:30:00 CST
1082    Tag: blume-20041214-spaces
1083    Description:
1084    
1085    Hacked some of the scripts (in particular: the installer) to cope with
1086    spaces in filenames a bit better.  But beware: the current "solution"
1087    is likely still full of bugs and inherently incomplete.  (We need to
1088    do away with those shell scripts for a comprehensive solution.)
1089    
1090    ----------------------------------------------------------------------
1091    Name: Matthias Blume (blume (at) tti - c (dot) org)
1092    Date: 2004/12/13 14:45:00 CST
1093    Tag: blume-20041213-ml-makedepend
1094    Description:
1095    
1096    Fixed bug in code for ml-makedepend.
1097    
1098    ----------------------------------------------------------------------
1099    Name: Matthias Blume (blume (at) tti - c (dot) org)
1100    Date: 2004/12/09 16:30:00 CST
1101    Tag: blume-20041209-statistics
1102    Description:
1103    
1104    Added two simple but potentially useful statistics modules to SML/NJ Library.
1105    (See CHANGES file there.)
1106    
1107    ----------------------------------------------------------------------
1108    Name: Matthias Blume (blume (at) tti - c (dot) org)
1109    Date: 2004/12/01 16:50:00 CST
1110    Tag: blume-20041201-atom
1111    Description:
1112    
1113    smlnj-lib:
1114    
1115      Added function HashString.hashString' for substrings.
1116      Hand-inlined CharVector.foldl into HashString (for speed).
1117      Modified implementation of structure Atom to avoid extracting
1118      strings from substrings unless necessary.
1119      (Also see CHANGES file for smlnj-lib.)
1120    
1121    ----------------------------------------------------------------------
1122    Name: Matthias Blume (blume (at) tti - c (dot) org)
1123    Date: 2004/11/24 22:15:00 CST
1124    Tag: blume-20041124-cml
1125    Description:
1126    
1127    Made sure CML compiles when Position = Int64.
1128    
1129    ----------------------------------------------------------------------
1130    Name: Matthias Blume (blume (at) tti - c (dot) org)
1131    Date: 2004/11/24 14:30:00 CST
1132    Tag: blume-20041124-position
1133    Description:
1134    
1135    The compiler can now be compiled in a mode that makes structure Position
1136    equal to Int64.  The default, however, is unchanged (Position = Int31)
1137    for the time being.
1138    
1139    To enable 64-bit positions, use the following procedure:
1140    
1141    1. Start sml
1142    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1143    3. Type
1144          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1145    4. Run CMB.make() as usual.
1146    
1147    This is barely tested.  The only test so far was a little SML program
1148    counting the number of characters in an 8-gigabyte file by
1149    reading it character-by-character.  That test was successful.
1150    
1151    In support of 64-bit positions, a number of new functions have been
1152    added to the runtime system.
1153    
1154    ----------------------------------------------------------------------
1155    Name: Matthias Blume (blume (at) tti - c (dot) org)
1156    Date: 2004/11/23 14:45:00 CST
1157    Tag: blume-20041123-useFile
1158    Description:
1159    
1160    Fixed a problem with unhelpful error messages related to problems with
1161    .cm- or .sml files that appear as part of the sml command line.
1162    
1163    ----------------------------------------------------------------------
1164    Name: Matthias Blume (blume (at) tti - c (dot) org)
1165    Date: 2004/11/18 15:40:00 CST
1166    Tag: Release_110_51
1167    Description:
1168    
1169    New working version (110.51).  NEW BOOTFILES!
1170    
1171    ----------------------------------------------------------------------
1172    Name: Matthias Blume (blume (at) tti - c (dot) org)
1173    Date: 2004/11/18 15:35:00 CST
1174    Tag: <none>
1175    Description:
1176    
1177    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1178    Joemann).
1179    
1180    ----------------------------------------------------------------------
1181    Name: Allen Leung (leunga (at) reservoir (dot) com)
1182    Date: 2004/11/17 16:05:21 EST 2004
1183    Tag: leunga-20041117-mlrisc-live-kill
1184    Description:
1185    
1186       Added support for MLTree constructs LIVE and KILL
1187    to all the architectures.
1188    
1189    ----------------------------------------------------------------------
1190    Name: Matthias Blume (blume (at) tti - c (dot) org)
1191    Date: 2004/11/13 00:20:00 CST
1192    Tag: blume-20041113-versiontool
1193    Description:
1194    
1195    - Stripped down the versiontool: It now only handles the version number.
1196      The date string is generated at bootstrap time (during makeml).
1197    
1198    - In a previous commit, fixed a minor issue with how polyequal is being
1199      translated.  In particular, the code now "looks through" abstractions.
1200      This results in slightly fewer polyEqual warnings and hopefully slightly
1201      more efficient code.  Important examples for where this matters are
1202      the new int64 and word64 types.
1203    
1204    ----------------------------------------------------------------------
1205    Name: Matthias Blume (blume (at) tti - c (dot) org)
1206    Date: 2004/11/12 00:30:00 CST
1207    Tag: blume-20041112-int64
1208    Description:
1209    
1210    Structure Int64 fully hooked in.  (The implementation is not very
1211    efficient, though.)
1212    
1213    ----------------------------------------------------------------------
1214    Name: Matthias Blume (blume (at) tti - c (dot) org)
1215    Date: 2004/11/11 17:30:00 CST
1216    Tag: blume-20041111-more64
1217    Description:
1218    
1219    All the pieces of Word64 are now there, with the exception of the
1220    conversions from and to LargeWord. (Eventually these need to be identities,
1221    but for the time being they don't even make sense because LargeWord is
1222    32-bit wide.)
1223    
1224    Also started to add similar support for Int64, but major pieces of that
1225    are still missing.
1226    
1227    ----------------------------------------------------------------------
1228    Name: Matthias Blume (blume (at) tti - c (dot) org)
1229    Date: 2004/11/11 00:15:00 CST
1230    Tag: blume-20041111-word64
1231    Description:
1232    
1233    Structure Word64 is now (almost) complete, word literals and patterns
1234    seem to work.  There are a few odd pieces missing.  In particular,
1235    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1236    at the moment.
1237    
1238    Making Word64 official would mean that LargeWord becomes Word64.  But
1239    this requires extreme care because most word-word conversions have to
1240    go through LargeWord, so making a mistake means loss of efficiency or
1241    worse.  Eventually there will be a solution similar to (but actually
1242    simpler than) what I did with IntInf.
1243    
1244    ----------------------------------------------------------------------
1245    Name: Matthias Blume (blume (at) tti - c (dot) org)
1246    Date: 2004/11/10 18:12:00 CST
1247    Tag: blume-20041110-64bit
1248    Description:
1249    
1250    More 64-bit hacking (but still not even half-way there yet).
1251    Also, some assorted improvements to the handling of 8-bit words.
1252    
1253    ----------------------------------------------------------------------
1254    Name: Matthias Blume (blume (at) tti - c (dot) org)
1255    Date: 2004/11/09 17:50:00 CST
1256    Tag: <none>
1257    Description:
1258    
1259    Started adding some infrastructure for supporting 64-bit int- and
1260    word-types.  (Still in its very early stages.)
1261    
1262    ----------------------------------------------------------------------
1263    Name: Matthias Blume (blume (at) tti - c (dot) org)
1264    Date: 2004/10/28 10:45:00 CDT
1265    Tag: Release_110_50
1266    Description:
1267    
1268    New working version (110.50).  NEW BOOTFILES!
1269    
1270                 =====================
1271    
1272    Also:
1273    
1274      - Changend config/srcarchiveurl from a file just
1275        containing the URL string into a file containing
1276        shell script code.  The code has access to the $VERSION variable.
1277      - Made corresponding changes to config/install.sh and config/unpack.
1278      - Default contents of config/srcarchiveurl uses $VERSION and
1279        normally does not have to be edited to reflect a version change.
1280    
1281      (As a result, a version change can be done by just editing
1282       config/version, the rest is now automatic.)
1283    
1284    ----------------------------------------------------------------------
1285    Name: Matthias Blume (blume (at) tti - c (dot) org)
1286    Date: 2004/10/27 17:50:00 CDT
1287    Tag: blume-20041027-btrace-msg
1288    Description:
1289    
1290    BackTrace.monitor now also reports the source of the exception that
1291    triggered the trace.
1292    
1293    ----------------------------------------------------------------------
1294    Name: Matthias Blume (blume (at) tti - c (dot) org)
1295    Date: 2004/10/27 17:20:00 CDT
1296    Tag: blume-20041027-x86-c-calls
1297    Description:
1298    
1299    This is the HISTORY entry for two earlier commits, both concerning
1300    the x86 c-calls code in MLRISC:
1301    
1302      - added a missing LOAD in the code that deals with struct arguments
1303      - made sure the caller does not add the wrong number of bytes to the
1304        stack pointer after a call of a function returning a struct
1305        (the callee already pops the implicit argument which points to
1306         the space reserved for the result)
1307    
1308    ----------------------------------------------------------------------
1309    Name: Allen Leung (leunga (at) reservoir (dot) com)
1310    Date: 2004/10/24 14:00:00 EST
1311    Tag: leunga-20041024-x86-gas-fucomip
1312    Description:
1313    
1314       John discovered a bug in the syntax of fucomip.
1315       The opcodes FU?COMIP? have been changed to
1316    
1317           fu?comip? %st(i), %st
1318    
1319    ----------------------------------------------------------------------
1320    Name: Matthias Blume (blume (at) tti - c (dot) org)
1321    Date: 2004/10/20 15:06:00 CDT
1322    Tag: blume-20041020-standalone-backtrace
1323    Description:
1324    
1325    Added a mechanism for getting back-trace information from standalone
1326    programs.  Here is how it works:
1327    
1328       1. The part of the program from which you want to get backtrace
1329          information (usually the whole program) should be wrapped with
1330          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1331          main program could be modified from something like
1332    
1333             fun main (pgm, args) = ...
1334    
1335         to
1336    
1337            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1338    
1339       2. To be able to access BackTrace.monitor, you have to add
1340          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1341          main function.
1342    
1343       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1344          CM might have created in the past for your project).
1345    
1346       4. Build the system using this command line:
1347    
1348             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1349                      myprog.cm MyProg.main myprog
1350    
1351          instead of the usual
1352    
1353             ml-build myprog.cm MyProg.main myprog
1354    
1355    I changed a library name:
1356    
1357       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1358    
1359    New libraries:
1360    
1361       $smlnj-tdp/back-trace.cm
1362          -- when loaded causes the back-trace plugin to be installed
1363       $smlnj-tdp/coverage.cm
1364          -- when loaded causes the coverage plugin to be installed
1365    
1366    ----------------------------------------------------------------------
1367    Name: Matthias Blume (blume (at) tti - c (dot) org)
1368    Date: 2004/10/18 16:45:00 CDT
1369    Tag: blume-20041018-groupowner
1370    Description:
1371    
1372    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1373    
1374    Eliminated group owner specs from .cm files throughout the source tree.
1375    
1376    ----------------------------------------------------------------------
1377    Name: Matthias Blume (blume (at) tti - c (dot) org)
1378    Date: 2004/10/15 15:45:00 CDT
1379    Tag: blume-20041015-coverage
1380    Description:
1381    
1382    * Test coverage tool added!
1383    * Further reorganization of tracing-, debugging-, and profiling support:
1384    
1385        - moved original BTImp -- now called BackTrace -- into a separate
1386          library called $/trace-debug-profile.cm
1387        - eliminated all mentions of BTrace from SMLofNJ.Internals
1388        - only the instrumentation mechanism is now left in the compiler proper
1389        - BackTrace module is a plugin which is NOT plugged in by default
1390        - Coverage module is another such plugin
1391    
1392    To get the benefits of any of these plugin modules, the code in
1393    question must be compiled with tdp instrumentation turned on.  This
1394    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1395    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1396    
1397    Plugins are selected at link time.  (Pre-compiled instrumented code
1398    can be re-loaded with different plugins in effect.)  When an
1399    instrumented module is linked, whatever plugins are at that time
1400    enabled will come into effect for that module.
1401    
1402    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1403    and invoke BackTrace.install() (e.g., from the interactive prompt).
1404    To enable the coverage plugin, load the same library and invoke
1405    Coverage.install().
1406    
1407    Back-traces are generated automatically on uncaught exceptions and
1408    when the code in question explicitly invokes BackTrace.trigger().
1409    
1410    Coverage (and execution frequency-) information must be queried
1411    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1412    
1413    ----------------------------------------------------------------------
1414    Name: Matthias Blume (blume (at) tti - c (dot) org)
1415    Date: 2004/10/14 17:40:00 CDT
1416    Tag: blume-20041014-tdp-core
1417    Description:
1418    
1419    Snapshot of a significant overhaul of how the trace/debug/profile support
1420    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1421    
1422    ----------------------------------------------------------------------
1423    Name: Matthias Blume (blume (at) tti - c (dot) org)
1424    Date: 2004/10/13 16:34:00 CDT
1425    Tag: blume-20041013-tdp
1426    Description:
1427    
1428    Some rationalization of names:
1429    
1430       structure BTrace -> structure TDPInstrument
1431       etc.
1432    
1433    This is is preparation of using the original back-trace
1434    instrumentation for other purposes.  "TDP" stands for
1435    Trace/Debug/Profile.
1436    
1437    The control flag controlling whether instrumentation is on or off is now
1438    registered under a different name, so instead of running sml as
1439    
1440     sml -Cinstrument.btrace-mode=true
1441    
1442    one has to say
1443    
1444     sml -Ctdp.instrument=true
1445    
1446    ----------------------------------------------------------------------
1447    Name: Matthias Blume (blume (at) tti - c (dot) org)
1448    Date: 2004/10/11 16:37:00 CDT
1449    Tag: blume-20041011-regions
1450    Description:
1451    
1452    Made some minor modifications to elabcore.sml to have source regions
1453    be propagated more tightly -- resulting in better (i.e., smaller)
1454    regions being reported in error- and debug messages.
1455    
1456    ----------------------------------------------------------------------
1457    Name: Matthias Blume (blume (at) tti - c (dot) org)
1458    Date: 2004/10/08 22:50:00 CDT
1459    Tag: blume-20041008-cmkw
1460    Description:
1461    
1462    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1463    treats subsequent occurrences of "group", "library", "source", "is",
1464    "*", and "-" as ordinary identifiers rather than keywords.
1465    
1466    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1467    is supposed to accept a tool argument called "source", but this did
1468    not work because of the clash with the keyword.
1469    
1470    ----------------------------------------------------------------------
1471    Name: Matthias Blume (blume (at) tti - c (dot) org)
1472    Date: 2004/10/07 16:00:00 CDT
1473    Tag: blume-20041007-cleanup
1474    Description:
1475    
1476    Assorted cleanup work:
1477    
1478      - got rid of intstrmap in favor of using the library's
1479        hash table implementation
1480      - threw out most of the pathnames stuff, as it was not used anyway
1481      - simplified tokentable implementation
1482      - fixed some minor spelling errors
1483    
1484    ----------------------------------------------------------------------
1485    Name: Matthias Blume (blume (at) tti - c (dot) org)
1486    Date: 2004/10/06 15:15:15 CDT
1487    Tag: blume-20041006-handler
1488    Description:
1489    
1490    Cleaned up the absyn to reflect the invariant that HANDLE always
1491    carries a FNexp as part of the type definition.  This eliminates some
1492    superfluous sanity checks at runtime down the road.
1493    
1494    Some minor cleanup of the btrace code.
1495    
1496    ----------------------------------------------------------------------
1497    Name: Matthias Blume (blume (at) tti - c (dot) org)
1498    Date: 2004/10/01 10:20:30 CDT
1499    Tag: blume-20041001-slave
1500    Description:
1501    
1502    Added hack to make slave mode work in the presence of the version
1503    tool.  (Still, since the master does two passes over the code for
1504    CMB.make, the release number gets bumped twice when slaves are
1505    attached.  I don't know if this is worth fixing...)
1506    
1507    ----------------------------------------------------------------------
1508    Name: Matthias Blume (blume (at) tti - c (dot) org)
1509    Date: 2004/09/30 10:55:00 CDT
1510    Tag: blume-20040930-version
1511    Description:
1512    
1513    * Moved the "version" magic into its own little library under
1514      src/system/smlnj/internal.  This avoids expensive reconstruction of
1515      a stable src/compiler/core.cm.
1516    
1517    * At the same time, structure CompilerVersion is now known as
1518      structure SMLNJVersion.
1519    
1520    * Arranged for the version tool to NOT kick in when rebuilding the system
1521      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1522      Also, loading the versiontool does not work when rebuilding the system
1523      because CM is not properly initialized at that time.
1524    
1525    ----------------------------------------------------------------------
1526    Name: Matthias Blume (blume (at) tti - c (dot) org)
1527    Date: 2004/09/29 14:00:00 CDT
1528    Tag: blume-20040929-autoversion
1529    Description:
1530    
1531    Implemented some CM magic to have
1532        file src/compiler/TopLevel/main/version.sml
1533    generated automagically.
1534    The version is taken from two files: config/version and config/release.
1535    The first is expected to contain a two-part version number such as 110.49.
1536    The second should contain a single number, but it may be missing.
1537    
1538    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1539    time the version tool is loaded (which is the first time you say CMB.make),
1540    then the tool will increment the value stored in config/release every
1541    time CMB.make is invoked.
1542    
1543    The binfile format is now insensitive to anything beyond the first
1544    two components of a version number, so bumping the release does not render
1545    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1546    during development without invalidating existing binfiles.
1547    
1548    In any case, every CMB.make updates the date information in version.sml.
1549    (This is the date that is printed in the banner.)
1550    
1551    ----------------------------------------------------------------------
1552    Name: Matthias Blume (blume (at) tti - c (dot) org)
1553    Date: 2004/09/28 10:53:00 CDT
1554    Tag: blume-20040928-controls
1555    Description:
1556    
1557    Some cleanup of the controls code.
1558    
1559    ----------------------------------------------------------------------
1560    Name: Matthias Blume (blume (at) tti - c (dot) org)
1561    Date: 2004/09/27 22:08:00 CDT
1562    Tag: blume-20040927-controls
1563    Description:
1564    
1565    Added two pieces of functionality to the Controls interface:
1566    
1567    1.   val save'restore: 'a control -> unit -> unit
1568    
1569       grabs the current value of the control in stage 1 and restores it
1570       in stage 2.
1571    
1572    2.   val set' : 'a control * 'a -> unit -> unit
1573    
1574       stores the given value into the control in stage 2 (i.e., delayed)
1575       but does all error checking in stage 1.
1576       (This is for string controls that need to do parse their argument --
1577        something that might fail.  In some cases, notably in CM, one
1578        already knows the intended argument but wants to delay the actual
1579        assignment until a time when error recovery would be more difficult.)
1580    
1581    Changed the handling of controls in tool arguments to classes "sml" and
1582    "lazysml":
1583       - use Controls.save'restore as a more robust way of restoring the
1584         old value (in particular: without having to re-parse the string)
1585       - use controls to handle the "overload" keyword in the init group
1586         (I believe this change actually fixes a long-standing obscure bug.)
1587    
1588    ----------------------------------------------------------------------
1589    Name: Matthias Blume (blume (at) tti - c (dot) org)
1590    Date: 2004/09/27 17:00:00 CDT
1591    Tag: blume-20040927-lazysml
1592    Description:
1593    
1594    Added a new tool class called "lazysml" to CM's tool chest.  The only
1595    difference to "sml" is that compilation is done with Control.lazysml
1596    set to true.  A source of class "lazysml" is automatically recognized
1597    by a file name suffix of ".lml".
1598    
1599    In addition to the above feature, the original class "sml" now also
1600    supports a tool argument "lazy" which has the same effect.  As a
1601    result, the following three lines are equivalent:
1602    
1603        foo.sml : lazysml
1604        foo.sml : sml (lazy)
1605        foo.sml (lazy)
1606    
1607    The setting goes into effect both during parsing and during
1608    compilation.  The original setting is restored right after parsing and
1609    after compilation, respectively.
1610    
1611    In addition to all the above, there is also a general mechanism to set
1612    ANY of the "controls" that are available at the command line via
1613    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1614    apply as well. (In fact, "lazy" is implemented as a special case of
1615    the general mechanism.)
1616    
1617    The .cm file syntax uses a new keyword tool argument called "with".
1618    There are several ways of indicating the desired settings:
1619    
1620        foo.sml (with:parser.quotations=true)
1621        foo.sml (with:(name:parser.quotations value:true))
1622        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1623        foo.sml (with:(name1=value1 name2=value2 ...))
1624        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1625    
1626        etc.
1627    
1628    Another possible abbreviation is to leave out the =v or value:v part
1629    if the name refers to a boolean control (in which case the value is
1630    taken to be true).  Thus, one could get lazy sml also by saying:
1631    
1632        foo.sml (with:parser.lazy-keyword=true)
1633        foo.sml (with:parser.lazy-keyword)
1634        foo.sml (with:(name:parser.lazy-keyword value:true))
1635        foo.sml (with:(name:parser.lazy-keyword))
1636    
1637    ----------------------------------------------------------------------
1638    Name: Matthias Blume (blume (at) tti - c (dot) org)
1639    Date: 2004/09/24 16:22:00 CDT
1640    Tag: blume-20040924-ppc-long-branch
1641    Description:
1642    
1643    Turned message about "emiting long form of branch" off by default.
1644    Added a control flag to turn it back on when desired.
1645    
1646    ----------------------------------------------------------------------
1647    Name: Matthias Blume (blume (at) tti - c (dot) org)
1648    Date: 2004/09/24 16:05:00 CDT
1649    Tag: blume-20040924-rounding
1650    Description:
1651    
1652    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1653    Melissa O'Neill for providing the code!
1654    
1655    ----------------------------------------------------------------------
1656    Name: Matthias Blume (blume (at) tti - c (dot) org)
1657    Date: 2004/09/23 17:30:00 CDT
1658    Tag: blume-20040923-envvars
1659    Description:
1660    
1661    1. Changed definition of type ControlRegistry.registry_tree to
1662       include control_info (i.e., the name of the controlling environment
1663       variable).
1664    
1665    2. Added command-line flags -e and -E to print the names of environment
1666       variables that can be used to control internal settings.
1667       (This uses the new API mentioned in 1.)
1668    
1669    ----------------------------------------------------------------------
1670    Name: Matthias Blume (blume (at) tti - c (dot) org)
1671    Date: 2004/09/13 16:50:00 CDT
1672    Tag: Release_110_49
1673    Description:
1674    
1675    New working version (110.49).  NEW BOOTFILES!
1676    
1677    ----------------------------------------------------------------------
1678    Name: Matthias Blume
1679    Date: 2004/09/13 16:20:00 CDT
1680    Tag: blume-20040913-config-mlrisc
1681    Description:
1682    
1683    Put target "mlrisc" back into the default list.
1684    (There is no harm in having it, and some users have expressed their
1685    wish to have "mlrisc" included by default.)
1686    
1687    ----------------------------------------------------------------------
1688    Name: John Reppy
1689    Date: 2004/09/13
1690    Tag: jhr-20040913-signals
1691    Description:
1692    
1693    Fixed the signal masking code to properly nest mask/unmask operations
1694    on a per-signal basis.
1695    
1696    ----------------------------------------------------------------------
1697    Name: Matthias Blume (blume (at) tti - c (dot) org)
1698    Date: 2004/09/08 13:20:00 CDT
1699    Tag: blume-20040908-heap-magic
1700    Description:
1701    
1702    Bumped the heap macig number to 0x09082004 to account for the changed
1703    layout of the ML frame under MacOS X.
1704    
1705    ----------------------------------------------------------------------
1706    Name: Allen Leung (leunga (at) reservoir (dot) com)
1707    Date: 2004/09/03 11:26:00 EST
1708    Tag: leunga-20040903-cygwin-install
1709    Description:
1710    
1711       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1712    The Cygwin runtime is turned on by setting the environment
1713    variable SMLNJ_CYGWIN_RUNTIME to 1.
1714    
1715    ----------------------------------------------------------------------
1716    Name: Matthias Blume (blume (at) tti - c (dot) org)
1717    Date: 2004/08/31 17:15:00 CDT
1718    Tag: blume-20040831-core
1719    Description:
1720    
1721    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1722    
1723    ----------------------------------------------------------------------
1724    Name: Matthias Blume (blume (at) tti - c (dot) org)
1725    Date: 2004/08/30 17:55:00 CDT
1726    Tag: blume-20040830-installer
1727    Description:
1728    
1729    Upon request by Johannes Joemann:
1730    
1731    - improved ML code of installer to fall back to coping when renaming
1732      fails (i.e., when source and target are on different file systems);
1733      the code compiles but has yet to be tested in anger
1734    - removed mlrisc from list of default targets (config/targets)
1735    
1736    ----------------------------------------------------------------------
1737    Name: Matthias Blume (blume (at) tti - c (dot) org)
1738    Date: 2004/08/27 17:20:00 CDT
1739    Tag: blume-20040827-ptreql
1740    Description:
1741    
1742    Added ptreql primop to structure InlineT (upon request from Larry
1743    Paulson).
1744    
1745    ----------------------------------------------------------------------
1746    Name: Allen Leung (leunga (at) reservoir (dot) com)
1747    Date: 2004/08/15 21:21:00 EST
1748    Tag: leunga-110_48-udgraph
1749    Description:
1750    
1751    Another bug fix from Carl Hauser:
1752    
1753    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
1754    > 48c48
1755    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
1756    > e::L)
1757    > ---
1758    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
1759    > Without this, any deletion of an edge in an undirected graph does severe
1760    > violence to the graph.
1761    
1762    ----------------------------------------------------------------------
1763    Name: Allen Leung (leunga (at) reservoir (dot) com)
1764    Date: 2004/08/10 23:35:00 EST
1765    Tag: leunga-110_48-ppc
1766    Description:
1767    
1768       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
1769    
1770    ----------------------------------------------------------------------
1771    Name: Matthias Blume (blume (at) tti - c (dot) org)
1772    Date: 2004/08/10 12:00:00 CDT
1773    Tag: Release_110_48
1774    Description:
1775    
1776    New working version (110.48).  NEW BOOTFILES!
1777    
1778    ----------------------------------------------------------------------
1779    Name: Allen Leung (leunga (at) reservoir (dot) com)
1780    Date: 2004/08/09 12:21:00 EST
1781    Tag: leunga-110_47-dijsktra
1782    Description:
1783    
1784    Bug fix from Carl Hauser:
1785    
1786    single_source_shortest_paths in dijkstra.sml was observed to get wrong
1787    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
1788    
1789    The problem is that following the expression A.update(dist,s,Num.zero)
1790    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
1791    
1792    ----------------------------------------------------------------------
1793    Name: Matthias Blume (blume (at) tti - c (dot) org)
1794    Date: 2004/08/06 18:10:00 CDT
1795    Tag: blume-20040806-cmdline
1796    Description:
1797    
1798    Fiddled with handling of command-line options:
1799    
1800      * sml now quits after processing the command line
1801        if -H, -S, -h<n>, or -s<n> appears as the last
1802        command-line argument
1803      * a new option -q terminates the session when encountered on
1804        the command line; subsequent arguments will be ignored
1805      * bug fixes: short (erroneous) arguments are no longer ignored
1806        completely
1807    
1808    ----------------------------------------------------------------------
1809    Name: Allen Leung (leunga (at) reservoir (dot) com)
1810    Date: 2004/08/04 18:17:00 EST
1811    Tag: leunga-110_47-ppc-ibm-asm
1812    Description:
1813    
1814      - Added minimal IBM assembly syntax support for PowerPC.
1815    
1816      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
1817        been altered in the runtime.  We need an automatic way to keep the file
1818        in sync.
1819    
1820    ----------------------------------------------------------------------
1821    Name: Matthias Blume (blume (at) tti - c (dot) org)
1822    Date: 2004/08/04 14:00:00 CDT
1823    Tag: Release_110_47
1824    Description:
1825    
1826    New working version (110.47).  NEW BOOTFILES!
1827    
1828    ----------------------------------------------------------------------
1829    Name: Matthias Blume (blume (at) tti - c (dot) org)
1830    Date: 2004/08/03 14:25:00 CDT
1831    Tag: blume-20040803-callingconv
1832    Description:
1833    
1834    Added low-level support for choosing C calling conventions by
1835    twiddling the type of rawccall.  (See
1836    src/compiler/Semant/types/cproto.sml for details.)
1837    
1838    ----------------------------------------------------------------------
1839    Name: Matthias Blume (blume (at) tti - c (dot) org)
1840    Date: 2004/08/02 15:55:00 CDT
1841    Tag: blume-20040802-backout
1842    Description:
1843    
1844    Backed out of change to win32-filesys.c.  The earlier patch to
1845    get_file_time caused CM to produce files with the wrong time stamp.
1846    
1847    ----------------------------------------------------------------------
1848    Name: Matthias Blume (blume (at) tti - c (dot) org)
1849    Date: 2004/08/02 14:45:00 CDT
1850    Tag: blume-20040802-nlffi-win32
1851    Description:
1852    
1853    Added NLFFI support for Win32, adapted from a patch provided by David
1854    Hansel.  This is currently completely untested.  Also, the issue
1855    concerning stdcall vs. ccall is still unresolved.
1856    
1857    ----------------------------------------------------------------------
1858    Name: Matthias Blume (blume (at) tti - c (dot) org)
1859    Date: 2004/07/30 17:55:00 CDT
1860    Tag: blume-20040730-various
1861    Description:
1862    
1863    Gearing up towards 110.47...
1864    
1865    - various minor bugfixes to ml-nlffigen
1866    - a beginning of a manual for nlffi
1867    
1868    - eliminated 'export name=value' in config/install.sh as this does
1869      not work with certain versions of /bin/sh
1870      (Thanks to David King at Motorola for catching this.)
1871    
1872    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
1873      - added a test for tm==NULL to gmtime.c and localtime.c
1874      - applied patch for incorrect GetFileTime under win32
1875      - toSeconds -> toMilliseconds in Win32/win32-process.sml
1876    
1877    ----------------------------------------------------------------------
1878    Name: Matthias Blume (blume (at) tti - c (dot) org)
1879    Date: 2004/07/21 18:20:00 CDT
1880    Tag: blume-20040721-nlffigen
1881    Description:
1882    
1883    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
1884      for a typedef to an incomplete type, but leave out the "typ" member.
1885      (This is just for consistency.)
1886    - Started to produce what is supposed to become better (i.e., comprehensive)
1887      documentation of what ml-nlffigen does and produces.
1888    
1889    ----------------------------------------------------------------------
1890    Name: Matthias Blume (blume (at) tti - c (dot) org)
1891    Date: 2004/07/14 16:25:00 CDT
1892    Tag: blume-20040714-union
1893    Description:
1894    
1895    Added C_UNION to c-calls/c-types.sml and updated the machinery
1896    (ml-nlffigen, cproto.sml) that conveys C function interface
1897    information to the code generator.
1898    
1899    However, the actual architecture-specific implementation of function
1900    arguments and results that are C unions is still not implemented.
1901    
1902    ----------------------------------------------------------------------
1903    Name: Allen Leung (leunga (at) reservoir (dot) com)
1904    Date: 2004/07/14 14:38:00 EST
1905    Tag: leunga-110_46_1-ppc-lwzu
1906    Description:
1907    
1908        Added these instructions to the PowerPC architecture:
1909        LBZU(X), LHZU(X), LWZU(X),
1910        STWU(X), STFDU, STFSU
1911    
1912        etc...
1913    
1914        Note: I haven't added their instruction encoding into the description.
1915    
1916    ----------------------------------------------------------------------
1917    Name: Allen Leung (leunga (at) reservoir (dot) com)
1918    Date: 2004/07/13 15:04:00 EST
1919    Tag: leunga-110_46_1-ppc-lwarx
1920    Description:
1921    
1922       Added the two instructions LWARX and STWCX to the PowerPC
1923    instruction set.
1924    
1925       A (untested) rewrite of loop-structure.sml.  The old version
1926    is completely broken.
1927    
1928    ----------------------------------------------------------------------
1929    Name: Matthias Blume (blume (at) tti - c (dot) org)
1930    Date: 2004/07/13 13:50:00 CDT
1931    Tag: blume-20040713-nlffi
1932    Description:
1933    
1934    - use paramAlloc to report c-calls with too many arguments
1935      (for PPC version where parameter area is pre-allocated)
1936    - added ccall_maxargspace to machspec (to implement the above)
1937    - made "make" commend in CM's "make" tool configurable
1938    - added option (default: on) for passing the name of the SML/NJ's "bin"
1939      directory to "make"; the call looks like this:
1940    
1941         make <options> SMLNJ_BINDIR=<dir> <target>
1942    
1943      This can be used by the Makefile to, e.g., pick the "right" version
1944      of ml-nlffigen.
1945    - minor code tweaks
1946    
1947    ----------------------------------------------------------------------
1948    Name: Matthias Blume (blume (at) tti - c (dot) org)
1949    Date: 2004/07/12 22:50:00 CDT
1950    Tag: blume-110_46_1-macosx-nlffi
1951    Description:
1952    
1953    NLFFI under Mac OS X now working (sort of).  This is largely untested,
1954    though.
1955    
1956    Note:  1. You have to make a new, clean build of the runtime system.
1957           2. There are new BOOTFILES, you have to use them!
1958              (Doing the bootstrap process yourself would be *very* painful!
1959               If you absolutely have to do it, build the system under
1960               a different architecture and then cross-compile.)
1961    
1962    Version bumped to 110.46.1 to account for runtime data format changes.
1963    
1964    ----------------------------------------------------------------------
1965    Name: Matthias Blume (blume (at) tti - c (dot) org)
1966    Date: 2004/06/18 14:30:00 CDT
1967    Tag: blume-20040618-unix
1968    Description:
1969    
1970    Changed the implementation of structure Unix so that the same stream
1971    is returned every time one of the {text,bin}{In,Out}streamOf functions
1972    is invoked on the same proc.  This is not what the spec currently
1973    says -- although IMO it arguably should.  (See discussion below.)
1974    
1975    ----------------------------------------------------------------------
1976    Name: Matthias Blume (blume (at) tti - c (dot) org)
1977    Date: 2004/06/17 18:15:00 CDT
1978    Tag: Release_110_46
1979    Description:
1980    
1981    New working version (110.46).  NEW BOOTFILES!
1982    
1983    ----------------------------------------------------------------------
1984    Name: Matthias Blume (blume (at) tti - c (dot) org)
1985    Date: 2004/06/17 17:20:00 CDT
1986    Tag: blume-20040617-timer-unix
1987    Description:
1988    
1989    Changed the interface of structures Timer and Unix to match the most
1990    recent Basis spec.
1991    
1992    In the case of Unix there still seems to be an open/weird issue:
1993    
1994       The {text,bin}{In,Out}streamOf functions are supposed to create
1995       fresh streams whenever they are called -- as opposed to have them
1996       return the same stream every time.  This design is supposed to
1997       prevent space leaks caused by proc values hanging on to streams.
1998    
1999       The reap function, on the other hand, is supposed to close the
2000       streams.  This cannot be done without having a handle on the
2001       stream in proc after all...
2002    
2003    I took the liberty to implement the following stopgap solution:
2004    
2005      The proc value hangs on to the most recently created stream(s).
2006      Reap closes those.  If either or both of the two streams hadn't
2007      been created at all yet, then reap will close the corresponding
2008      file descriptors directly.
2009    
2010    PS: I don't understand the original space leak argument anymore.  If
2011    a proc hangs on to the imperative stream, then I/O operations on those
2012    will advance the state of the cached stream and avoid the space leak.
2013    
2014    ----------------------------------------------------------------------
2015    Name: Matthias Blume (blume (at) tti - c (dot) org)
2016    Date: 2004/05/28 16:45:00 CDT
2017    Tag: blume-20040528-basis
2018    Description:
2019    
2020    Added signature PACK_REAL and exported functor PrimIO.
2021    
2022    ----------------------------------------------------------------------
2023    Name: Matthias Blume (blume (at) tti - c (dot) org)
2024    Date: 2004/05/25 16:00:00 CDT
2025    Tag: blume-20040525-group-owner
2026    Description:
2027    
2028    CM now ignores (but still accepts) the "owner" information in group
2029    descriptions.  The owner of a group is its next enclosing
2030    library. Each group must have a unique owner.  (There is a virtual
2031    "toplevel" library that owns groups which are not nested within a real
2032    library.)  Previously, each group had to explicitly declare its owner,
2033    and CM would check that such a declaration is correct.  The new scheme
2034    is to have CM check that for each group there is precisely one owning
2035    library.
2036    
2037    The advantage of the new scheme is that the programmer no longer needs
2038    to maintain the somewhat annoying owner information.  The downside is
2039    that CM cannot enforce the ownership rule across multiple runs of
2040    CM.make.  Fortunately, enclosing the same group in two different
2041    libraries A and B which are not part of the same program does not
2042    cause real problems.
2043    
2044    ----------------------------------------------------------------------
2045    Name: Matthias Blume (blume (at) tti - c (dot) org)
2046    Date: 2004/05/20 16:00:00 CDT
2047    Tag: blume-20040520-win32
2048    Description:
2049    
2050    Made the win32 version work again.  (Strangely, a misplaced comma had
2051    slipped into win32-process.c which prevented the runtime from being
2052    compiled correctly.)
2053    
2054    Also, included a minor addition to ml-build.bat analogous to what was
2055    done in blume-20040519-ml-build.
2056    
2057    ----------------------------------------------------------------------
2058    Name: Matthias Blume (blume (at) tti - c (dot) org)
2059    Date: 2004/05/19 22:10:00 CDT
2060    Tag: blume-20040519-ml-build
2061    Description:
2062    
2063    Arranged for ml-build to clean up after itself a little bit better.
2064    The script generates a temporary SML source file and compiles it using
2065    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
2066    gets rid of those at the end, so they don't accumulate under .cm.
2067    
2068    This required a minor change to install.sh because the name of the
2069    metadata directory (default: .cm) is actually configurable at
2070    installation time.
2071    
2072    ----------------------------------------------------------------------
2073    Name: Matthias Blume (blume (at) tti - c (dot) org)
2074    Date: 2004/05/18 15:50:00 CDT
2075    Tag: blume-20040518-mkreader
2076    Description:
2077    
2078    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
2079    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
2080    
2081    ----------------------------------------------------------------------
2082    Name: Matthias Blume (blume (at) tti - c (dot) org)
2083    Date: 2004/05/11 14:35:00 CDT
2084    Tag: blume-20040511-win32sock
2085    Description:
2086    
2087    Added previously missing support for many socket-related functions
2088    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
2089    for the voluminous patch!
2090    
2091    (I have not tested this patch under win32 yet.)
2092    
2093    Here is David's e-mail:
2094    
2095    Hi,
2096    
2097    Attached to this email you find a diff against sml/nj 110.45
2098    that will enable socket support under Windows.
2099    
2100    To apply the patch (using unix or cygwin)
2101    1) gunzip runtime.diff.gz
2102    2) "cd" into "src/runtime" in the source tree of a fresh
2103       110.45 installation.
2104    3) patch -p 1 < [your/path/to]runtime.diff
2105    
2106    The code compiles fine but has NOT yet been extensively tested.
2107    I only ran a few tests for basic socket client functionality
2108    (which worked fine).  Especially the functions that use ioctl
2109    are not tested at all and might not work (see below).
2110    
2111    I implemented this since we want to move to a newer version of sml/nj
2112    but need socket support in order to use it.  This is the first time I
2113    even had a look at the sml/nj source,  so please review my changes
2114    before making this part of the distribution!  Here are a few issues
2115    that I think might be better for someone to solve who is more
2116    familiar with the sml/nj source (and socket programming):
2117    
2118    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
2119      exception since I could not figure out what the windows equivalent
2120      of these functions is
2121    
2122    - In sockets-osdep.h there are a some #include statements that are
2123      only used in a few files that include sockets-osdep.h
2124    
2125    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
2126      does not process its return value since I don't know how to
2127      report an error upwards.
2128    
2129    - It would probably be good to have a call to WSACleanup() when
2130      the library is unloaded (if there is such a possibility).
2131      Otherwise I think Windows will take care of this automatically
2132      when the process finishes.
2133    
2134    - I used ioctlsocket() as a replacement for ioctl() but I have
2135      no idea if that is actually the proper replacement on Windows.
2136    
2137    - All these issues are marked in the code by "FIXME" comments.
2138    
2139    We use sml/nj extensively in our products and are quite happy
2140    with it.  I hope this contribution will help you.
2141    
2142    Keep up the good work!
2143    
2144    David
2145    
2146    ----------------------------------------------------------------------
2147    Name: Matthias Blume (blume (at) tti - c (dot) org)
2148    Date: 2004/05/11 14:20:00 CDT
2149    Tag: blume-20040511-installml
2150    Description:
2151    
2152    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
2153    the patch.)
2154    
2155    ----------------------------------------------------------------------
2156    Name: Matthias Blume (blume (at) tti - c (dot) org)
2157    Date: 2004/05/11 14:05:00 CDT
2158    Tag: blume-20040511-nlffi-netbsd
2159    Description:
2160    
2161    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
2162    the patch.)
2163    
2164    ----------------------------------------------------------------------
2165    Name: Matthias Blume (blume (at) tti - c (dot) org)
2166    Date: 2004/05/11 12:05:00 CDT
2167    Tag: blume-20040511-exports
2168    Description:
2169    
2170    As per request by Adam Chlipala <adam@hcoop.net>, extended various
2171    export lists in compiler-related .cm-files.
2172    
2173    ----------------------------------------------------------------------
2174    Name: Matthias Blume (blume (at) tti - c (dot) org)
2175    Date: 2004/05/11 11:35:00 CDT
2176    Tag: blume-20040511-allsource
2177    Description:
2178    
2179    The installer now honors the "src-smlnj" target again, although its meaning
2180    has changed from "all sources required for the compiler" to "all sources
2181    the installer knows about".  In other words, if you enable "src-smlnj"
2182    in the "targets" file, then the installer will pull in sources for
2183    everything.  (Notice that this refers to source code only.  Compiled
2184    code is still only installed for modules that were requested explicitly
2185    or which are required for other modules that were requested explicitly.)
2186    
2187    ----------------------------------------------------------------------
2188    Name: Matthias Blume (blume (at) tti - c (dot) org)
2189    Date: 2004/04/23 17:40:00 CDT
2190    Tag: blume-20040423-ieee-scan
2191    Description:
2192    
2193    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
2194    in the exponent calculation we get INF or ZERO (depending on the mantissa
2195    and the sign of the exponent).
2196    
2197    ----------------------------------------------------------------------
2198    Name: Matthias Blume (blume (at) tti - c (dot) org)
2199    Date: 2004/04/23 10:40:00 CDT
2200    Tag: blume-20040423-ml-build
2201    Description:
2202    
2203    The ml-build script now terminates with a non-0 status when something
2204    goes wrong.
2205    
2206    ----------------------------------------------------------------------
2207    Name: Matthias Blume (blume (at) tti - c (dot) org)
2208    Date: 2004/04/22 16:35:00 CDT
2209    Tag: blume-20040422-Option
2210    Description:
2211    
2212    Made exception Option to be the same as exception Option.Option
2213    (as it should be).
2214    
2215    ----------------------------------------------------------------------
2216    Name: Allen Leung (leunga (at) reservoir (dot) com)
2217    Date: 2004/03/19 14:40:00 EST
2218    Tag: leunga-20040319-cygwin-nlffi
2219    Description:
2220    
2221    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
2222    of SML/NJ.  The problem is that
2223    
2224       lib = dlopen(NULL, ...)
2225       f   = dlsym(lib, "malloc");
2226    
2227    does not work on Windows unless we explicitly export symbols
2228    such as 'malloc' during linking.  We fixed this by explicitly
2229    exporting the required symbols with the magic gcc incantation:
2230    
2231        -Wl,--export-all cygwin.def
2232    
2233    where cygwin.def is a file containing all the symbols that
2234    we wish to export.
2235    
2236    I suspect this is a Windows problem and we'll have to
2237    do the same (somehow with windows compilers) when
2238    we build the native win32 version with the system
2239    calls LoadLibrary/GetProcAddress.
2240    
2241    ----------------------------------------------------------------------
2242    Name: Matthias Blume (blume (at) tti - c (dot) org)
2243    Date: 2004/03/04 16:35:00 CST
2244    Tag: blume-20040304-intinf-fmt
2245    Description:
2246    
2247    Fixed problem with IntInf.fmt (sign would show up on the right instead
2248    of on the left for BIN, OCT, and HEX).
2249    
2250    ----------------------------------------------------------------------
2251    Name: Matthias Blume (blume (at) tti - c (dot) org)
2252    Date: 2004/03/04 11:25:00 CST
2253    Tag: blume-20040304-symlinks
2254    Description:
2255    
2256    Fixed problem with installer script (unix only) where bin/ml-yacc and
2257    friends pointed (via symlinks) to absolute locations instead of just
2258    .run-sml.  This was reported by Vesa A Norrman.
2259    
2260    ----------------------------------------------------------------------
2261    Name: Matthias Blume (blume (at) tti - c (dot) org)
2262    Date: 2004/02/13 14:50:00 CST
2263    Tag: Release_110_45
2264    Description:
2265    
2266    New working version (110.45). New bootfiles.
2267    
2268    ----------------------------------------------------------------------
2269    Name: Matthias Blume (blume (at) tti - c (dot) org)
2270    Date: 2004/01/26 15:15:15 CST
2271    Tag: blume-20040126-toplevel
2272    Description:
2273    
2274    Improved handling of exceptions at the interactive toplevel.
2275    
2276    ----------------------------------------------------------------------
2277    Name: Matthias Blume (blume (at) tti - c (dot) org)
2278    Date: 2004/01/26 11:25:00
2279    Tag: blume-20040126-app
2280    Description:
2281    
2282    Type of top-level "app" corrected.
2283    Added code for setting vp_limitPtrMask to Win32-specific runtime.
2284    
2285    ----------------------------------------------------------------------
2286    Name: Matthias Blume (blume (at) tti - c (dot) org)
2287    Date: 2003/11/18 17:10 CST
2288    Tag: blume-20031118-basis-fiddle
2289    Description:
2290    
2291    - changed Timer interface to what might become the spec
2292    - POSIX_FLAGS -> BIT_FLAGS according to spec
2293    - some other minor discrepancies wrt. spec eliminated
2294    
2295    ----------------------------------------------------------------------
2296    Name: Matthias Blume (blume (at) tti - c (dot) org)
2297    Date: 2003/11/06 12:00:00 CST
2298    Tag: Release_110_44
2299    Description:
2300    
2301    New working version (110.44). New bootfiles.
2302    
2303    ----------------------------------------------------------------------
2304    Name: Matthias Blume (blume (at) tti - c (dot) org)
2305    Date: 2003/11/04 11:50:00 CST
2306    Tag: blume-20031104-move-libraries
2307    Description:
2308    
2309    Eliminated the "dont_move_libraries" directive in config/targets.
2310    (The mechanism was broken and could not be fixed easily.  Moreover,
2311    there does not seem to be any reason not to move all libraries into
2312    lib during installation.  I originally implemented this directive as a
2313    backward-compatibility feature when I first introduced the new CM.
2314    Now that things have been stable for a long time and going back to the
2315    old CM is not an option, there is no reason to keep it around.)
2316    
2317    ----------------------------------------------------------------------
2318    Name: Matthias Blume (blume (at) tti - c (dot) org)
2319    Date: 2003/11/03 16:00:00 CST
2320    Tag: blume-20031103-installdir
2321    Description:
2322    
2323    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
2324    Richards for pointing out the problem and providing the solution.)
2325    
2326    ----------------------------------------------------------------------
2327    Name: Matthias Blume (blume (at) tti - c (dot) org)
2328    Date: 2003/10/01 17:05:00 CDT
2329    Tag: blume-20031001-lal-mlrisc
2330    Description:
2331    
2332    MLRISC bug fix from Lal.
2333    
2334    ----------------------------------------------------------------------
2335    Name: Matthias Blume (blume (at) tti - c (dot) org)
2336    Date: 2003/09/30 16:10:00 CDT
2337    Tag: blume-20030930-primio-bat
2338    Description:
2339    
2340    1. Added openVector, nullRd, and nullWr to PRIM_IO.
2341    2. Improved .bat files (for Win32 port) to make things work under Win95.
2342       (thanks to Aaron S. Hawley for this one)
2343    
2344    ----------------------------------------------------------------------
2345    Name: Matthias Blume (blume (at) tti - c (dot) org)
2346    Date: 2003/09/26 16:05:00 CDT
2347    Tag: blume-20030926-wrappriv
2348    Description:
2349    
2350    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
2351    
2352    ----------------------------------------------------------------------
2353    Name: Matthias Blume (blume (at) tti - c (dot) org)
2354    Date: 2003/09/26 15:00:00 CDT
2355    Tag: blume-20030926-110_43_3
2356    Description:
2357    
2358    - additional cleanup
2359    - version number bump, NEW BOOTFILES
2360    
2361    ----------------------------------------------------------------------
2362    Name: Matthias Blume (blume (at) tti - c (dot) org)
2363    Date: 2003/09/26 12:00:00 CDT
2364    Tag: blume-20030926-ppautoload
2365    Description:
2366    
2367    I modified the read-eval-print loop so that the autoloader gets
2368    invoked whenever the prettyprinter tries to look up a symbol that
2369    is not currently defined in the toplevel environment but which
2370    appears in CM's autoload registry.  As a result, we see far fewer of
2371    those ?.Foo.Bar.xxx names in the prettyprinter's output.
2372    
2373    In addition to this I tried to clean up some pieces of the Basis
2374    implementation (e.g., Socket, Word8Array) in order to prevent other
2375    instances of these ?.Foo.Bar.xxx names from being printed.
2376    
2377    The mechanism that picks names for types still needs some work, though.
2378    (Right now it seems that if there is a type A.t which is defined to
2379    be B.u, but B is unavailable at toplevel, then A.t gets printed as
2380    "?.B.u" although the perhaps more sensible solution would be to use
2381    "A.t" in this case.  In other words, the prettyprinter should follow
2382    a chain of DEFtycs not farther than there are corresponding toplevel
2383    names in the current environment.)
2384    
2385    ----------------------------------------------------------------------
2386    Name: Matthias Blume (blume (at) tti - c (dot) org)
2387    Date: 2003/09/24 16:31:00 CDT
2388    Tag: blume-20030924-installer
2389    Description:
2390    
2391    Another installer tweak:  All the ML code for the installer is now
2392    compiled during CMB.make and put into a little library called
2393    $smlnj/installer.cm.  The installation then simply invokes
2394    
2395       sml -m $smlnj/installer.cm
2396    
2397    and everything happens automagically.
2398    
2399    Win32:  ML code senses value of environment variable SMLNJ_HOME.
2400    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
2401            and BINDIR.
2402    
2403    The new scheme guarantees that the ML code responsible for the installation
2404    is in sync with the APIs of the main system.  Also, the installer is
2405    somewhat faster because the installer script is precompiled.
2406    
2407    ----------------------------------------------------------------------
2408    Name: Matthias Blume (blume (at) tti - c (dot) org)
2409    Date: 2003/09/24 15:35:00 CDT
2410    Tag: blume-20030924-synsock
2411    Description:
2412    
2413    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
2414    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
2415    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
2416    implementations of non-blocking operations from CML's Socket
2417    structure.
2418    
2419  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2420  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)

Legend:
Removed from v.1389  
changed lines
  Added in v.2342

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